解决执行字符串受作用域限制无法向外传递变量的方法技术

技术编号:2916996 阅读:387 留言:0更新日期:2012-04-11 18:40
本发明专利技术为解决执行字符串受作用域限制无法向外传递变量的方法,适用于基于结构化查询语言的关系数据库中的存储过程或批处理的程序设计。在上述程序设计中,使用执行字符串方法可以动态地构建查询语句,使程序设计较为灵活。但是,执行字符串是独立的作用域,执行字符串内定义的变量无法直接向执行字符串外传递。针对这一问题,本解决方法的主要特征是:在存储过程或批处理中,先创建临时表,再在执行字符串内向临时表插入或更新数据,然后在执行字符串外查询临时表的数据,从而解决无法由执行字符串内向外传递变量的问题。本方法可以使执行字符串的应用更为灵活、更为广泛,有效简化程序编写复杂度、提高计算机运算性能。

【技术实现步骤摘要】

:本专利技术涉及软件设计,特别是使用基于结构化查询语言的关系数据库系统中的存储过程或批处理的应用软件程序设计。
技术介绍
:基于结构化查询语言的关系数据库系统是最常用的也是最高效的数据库系统,被广泛应用。在结构化查询语言的关系数据库系统中的存储过程或批处理的具体程序设计中,经常需要编写大量类似的查询语句,其中变化的部分主要是表名、列名等不能使用变量的对象。这就需要由字符串及字符串变量等用串联运算符创建的长字符串动态地构建查询语句,然后使用执行字符串功能执行。这种方法使程序设计较为灵活,可以有效减少程序编写的代码数量,并能实现一些不能穷尽变化的程序设计。但是,由于执行字符串在被执行时作用域仅限定在执行字符串内,因此,由执行字符串内向外传递变量受作用域限制而无法直接实现。这种情况限制了执行字符串的应用。
技术实现思路
:本专利技术是解决执行字符串受作用域限制而无法直接向外传递变量这一问题的一种较简便的方法。本专利技术的解决方法是这样实现的:在存储过程或批处理中,先创建临时表,再在执行字符串内向临时表插入或更新数据,然后在执行字符串外查询临时表的数据,从而解决无法由执行字符串内向外传递变量的问题。所述的在存储过程或批处理中,是指在基于结构化查询语言的关系数据库系统中的某一个可执行单元,通常这个可执行单元包括多个语句。除全局变量外,这个可执行单元是一个独立的作用域,在此作用域内定义的局部变量仅在此作用域内有效,且局部变量不具有继承性。所述的先创建临时表,是指在可执行单元内创建的本地临时表,临时表具-->有可继承性。所述的执行字符串,是指动态执行由字符串及字符串变量等用串联运算符创建的长字符串。此执行字符串具有独立的作用域,可以在此执行字符串内定义局部变量。此执行字符串相当于一个批处理,可以有多个语句。所述的在执行字符串内向临时表插入或更新数据,是指将执行字符串内定义的局部变量经运算后的结果通过向临时表插入或更新数据的方式保存在可执行单元内已创建的临时表中。由于临时表具有继承性,执行字符串在可执行单元内执行,因此在执行字符串内可以使用在可执行单元内创建的临时表,并可对其进行重置操作。所述的在执行字符串外查询临时表的数据,是指在可执行单元内执行字符串之后,从临时表中取出执行字符串内保存的变量结果。临时表是在可执行单元内创建的,在执行字符串内被重置后,在可执行单元内仍在作用域范围内,可以正常执行查询。通过以上过程就完成了由执行字符串内向外传递变量的操作。使用本专利技术的方法突破作用域的限制后,可以使可执行字符串的应用象普通语句的应用一样方便,可以使可执行字符串应用的更为灵活、更为广泛。可执行字符串的大量应用可以有效简化程序编写的复杂度,减少大量类似语句的代码编写工作量,有利于可复用构件的实现。可执行字符串的大量应用也节省了计算机的存储空间,减少了程序编译时间,降低了程序运行时的CPU负荷,从而有效提高计算机的运算性能。附图说明:附图为本专利技术一个简化实例的示意图。具体实施方式:参见附图,我们将以一简化实例来说明本专利技术的具体实施方式。附图从开始至结束所示为一可执行单元中的一部分,可执行单元应该有其他处理,包括变量@C的定义等,在此仅列出与本专利技术直接相关的部分,其他部分已省略。附图步骤2所示为一执行字符串中的一部分,执行字符串应该有其他处理,-->包括变量@B的定义等,在此仅列出与本专利技术直接相关的部分,其他部分已省略。步骤1为创建临时表#A。步骤2为在执行字符串内将变量@B的值插入临时表#A。步骤3为从临时表#A中查询并赋值给变量@C。通过以上步骤,执行字符串内的变量@B的值已传递到执行字符串外的变量@C。-->本文档来自技高网...

【技术保护点】
解决执行字符串受作用域限制无法向外传递变量的方法,其特征在于采用下列步骤: 在存储过程或批处理中,先创建临时表; 再在执行字符串内向临时表插入或更新数据; 然后在执行字符串外查询临时表的数据。 其特征还包括: 所述的存储过程或批处理为一可执行单元,这个可执行单元是一个独立的作用域。 在这个作用域内创建本地临时表,本地临时表在作用域内具有继承性。 执行字符串具有独立的作用域,执行字符串可以继承可执行单元内创建的临时表,并可以重置此临时表。 在执行字符串内将需要向执行单元传递的变量插入或更新到临时表中。 在执行字符串外,是指在可执行单元的作用域内。 查询临时表的数据,是指查询已在执行字符串内插入或更新的数据,也就是接收执行字符串内传递的数据。

【技术特征摘要】
解决执行字符串受作用域限制无法向外传递变量的方法,其特征在于采用下列步骤:在存储过程或批处理中,先创建临时表;再在执行字符串内向临时表插入或更新数据;然后在执行字符串外查询临时表的数据。其特征还包括:所述的存储过程或批处理为一可执行单元,这个可执行单元是一个独立的作用域。在这个作用域内创建本地临时表,本地临时表...

【专利技术属性】
技术研发人员:董为卿
申请(专利权)人:北京思软科技有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1