欢迎来到知嘟嘟! 联系电话:13336804447 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13336804447
知嘟嘟经纪人
收藏
专利号: 2021109793418
申请人: 成都航空职业技术学院
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2025-10-31
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种动态生成SQL语句的方法,其特征在于,包括以下步骤:S1:建立SQL语句的扩展语句,形成DSQL语句,所述DSQL语句包括变量语法元素、变字语法元素和变块语法元素;

所述变量语法元素为SQL语句中可变的字符串或数字类型的数据;

所述变字语法元素为SQL语句中可变的字段名、函数名、操作符和关键字;

所述变块语法元素为SQL语句中可重复或可去掉的部分;

S2:采用解析器对DSQL语句进行解析,生成DSQL语句树,若DSQL语法树生成成功,则进入步骤S3;否则,进入报错程序,结束流程;

S3:应用程序设置变块语法元素的重复次数;若在设置过程中发现变块语法元素不符合变块语法的要求,则进入报错程序,结束流程;否则进入步骤S4;

S4:应用程序采用实际值设置变字语法元素;若在设置过程中发现变字语法元素不符合变字语法的要求,则进入报错程序,结束流程;否则进入步骤S5;

S5:应用程序使用实际值设置变量语法元素;若在设置过程中发现变量语法元素不符合变量语法的要求,则进入报错程序,结束流程;否则进入步骤S6;

S6:生成器将标准的SQL语句发送给关系型数据库。

2.根据权利要求1所述的动态生成SQL语句的方法,其特征在于,所述变量语法元素的语句格式为:?[name1][:default1][/*comment1*/];其中,?为变量起始符号,name1为变量的名称,并为编程语言的合法标识符;default1为变量的默认值,且default1与其数据类型匹配;/*comment1*/为变量的注释,且为任意字符串。

3.根据权利要求2所述的动态生成SQL语句的方法,其特征在于,所述变量语法元素在应用程序中引用的格式为:

paraIndex1[name2|columnName_comparisonOperatorAbbreviation]其中:para为固定字符串;Index1为采用此种引用名格式的变量的序号,变量的序号从1开始编号;name2为明确指定的变量名;columnName为比较表达式右侧字段名;

comparisonOperatorAbbreviation为比较操作符的缩写。

4.根据权利要求1所述的动态生成SQL语句的方法,其特征在于,所述变字语句包括用于标识SQL语句中可变的字段名、表名、视图名、函数名、比较操作符、逻辑操作符和关键字。

5.根据权利要求4所述的动态生成SQL语句的方法,其特征在于,所述变字语法元素的语法格式为:

#[name3:]default2[/*comment2*/]其中,#为变字语句的起始符号,name3为变字的名称,且为编程语言的合法标识符,default2为变字的默认值,/*comment2*/为变字语句的注释,且/*comment2*/为任意常量字符串。

6.根据权利要求5所述的动态生成SQL语句的方法,其特征在于,所述变字语句的引用名格式为:

wordIndex2[name4|type]其中,word为固定字符串,Index2为变字语句的序号,且变字语句的序号从1开始编号,name4为变字语法元素的变字名,type为变字语句的类型名,当变字语句的变字名未明确指定时,变字语句的变字名用变字语句的类型名代替。

7.根据权利要求1所述的动态生成SQL语句的方法,其特征在于,所述变块语法元素的语法格式为:

{content}[name5][/*comment3*/]其中,{content}中的{为变块语句的开始,}为变块语句内容的结束,content为变块语句的内容;name5为变块语句的名称,且变块语句的名称为编程语言的合法标识符;

comment3为变块语句的注释,变块语句的注释为任意字符串。

8.根据权利要求7所述的动态生成SQL语句的方法,其特征在于,所述变块语句的引用名格式为:

blockIndex3[name6]其中:block为固定字符串;Index3为变块语句的序号,且变块语句的序号从1开始编号;name6为明确指定的变块语句的名称。