[发明专利]解决执行字符串受作用域限制无法向外传递变量的方法无效
申请号: | 200710121984.9 | 申请日: | 2007-09-19 |
公开(公告)号: | CN101393518A | 公开(公告)日: | 2009-03-25 |
发明(设计)人: | 董为卿 | 申请(专利权)人: | 北京思软科技有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100071北京市丰*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 解决 执行 字符串 作用 限制 无法 向外 传递 变量 方法 | ||
技术领域:
本发明涉及软件设计,特别是使用基于结构化查询语言的关系数据库系统中的存储过程或批处理的应用软件程序设计。
背景技术:
基于结构化查询语言的关系数据库系统是最常用的也是最高效的数据库系统,被广泛应用。在结构化查询语言的关系数据库系统中的存储过程或批处理的具体程序设计中,经常需要编写大量类似的查询语句,其中变化的部分主要是表名、列名等不能使用变量的对象。这就需要由字符串及字符串变量等用串联运算符创建的长字符串动态地构建查询语句,然后使用执行字符串功能执行。这种方法使程序设计较为灵活,可以有效减少程序编写的代码数量,并能实现一些不能穷尽变化的程序设计。
但是,由于执行字符串在被执行时作用域仅限定在执行字符串内,因此,由执行字符串内向外传递变量受作用域限制而无法直接实现。这种情况限制了执行字符串的应用。
发明内容:
本发明是解决执行字符串受作用域限制而无法直接向外传递变量这一问题的一种较简便的方法。
本发明的解决方法是这样实现的:在存储过程或批处理中,先创建临时表,再在执行字符串内向临时表插入或更新数据,然后在执行字符串外查询临时表的数据,从而解决无法由执行字符串内向外传递变量的问题。
所述的在存储过程或批处理中,是指在基于结构化查询语言的关系数据库系统中的某一个可执行单元,通常这个可执行单元包括多个语句。除全局变量外,这个可执行单元是一个独立的作用域,在此作用域内定义的局部变量仅在此作用域内有效,且局部变量不具有继承性。
所述的先创建临时表,是指在可执行单元内创建的本地临时表,临时表具有可继承性。
所述的执行字符串,是指动态执行由字符串及字符串变量等用串联运算符创建的长字符串。此执行字符串具有独立的作用域,可以在此执行字符串内定义局部变量。此执行字符串相当于一个批处理,可以有多个语句。
所述的在执行字符串内向临时表插入或更新数据,是指将执行字符串内定义的局部变量经运算后的结果通过向临时表插入或更新数据的方式保存在可执行单元内已创建的临时表中。由于临时表具有继承性,执行字符串在可执行单元内执行,因此在执行字符串内可以使用在可执行单元内创建的临时表,并可对其进行重置操作。
所述的在执行字符串外查询临时表的数据,是指在可执行单元内执行字符串之后,从临时表中取出执行字符串内保存的变量结果。临时表是在可执行单元内创建的,在执行字符串内被重置后,在可执行单元内仍在作用域范围内,可以正常执行查询。
通过以上过程就完成了由执行字符串内向外传递变量的操作。使用本发明的方法突破作用域的限制后,可以使可执行字符串的应用象普通语句的应用一样方便,可以使可执行字符串应用的更为灵活、更为广泛。可执行字符串的大量应用可以有效简化程序编写的复杂度,减少大量类似语句的代码编写工作量,有利于可复用构件的实现。可执行字符串的大量应用也节省了计算机的存储空间,减少了程序编译时间,降低了程序运行时的CPU负荷,从而有效提高计算机的运算性能。
附图说明:
附图为本发明一个简化实例的示意图。
具体实施方式:
参见附图,我们将以一简化实例来说明本发明的具体实施方式。
附图从开始至结束所示为一可执行单元中的一部分,可执行单元应该有其他处理,包括变量@C的定义等,在此仅列出与本发明直接相关的部分,其他部分已省略。
附图步骤2所示为一执行字符串中的一部分,执行字符串应该有其他处理,包括变量@B的定义等,在此仅列出与本发明直接相关的部分,其他部分已省略。
步骤1为创建临时表#A。
步骤2为在执行字符串内将变量@B的值插入临时表#A。
步骤3为从临时表#A中查询并赋值给变量@C。
通过以上步骤,执行字符串内的变量@B的值已传递到执行字符串外的变量@C。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思软科技有限公司,未经北京思软科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710121984.9/2.html,转载请声明来源钻瓜专利网。