基于纯文本的命令脚本文件的人机命令实现方法

文档序号:6444983阅读:134来源:国知局
专利名称:基于纯文本的命令脚本文件的人机命令实现方法
技术领域
本发明涉及通讯领域中基于数据库的应用技术,具体涉及在应用系统中通过行式人机命令进行数据库操作维护管理的人机命令的实现技术,更具体地说,涉及一种基于纯文本的命令脚本文件的人机命令实现方法即对输入命令参数进行自动解析的方法。
背景技术
行式人机命令方式是交换机类较大型的通讯产品现有的操作维护模式之一。目前,常用的实现方法是在一个可执行程序中对每一条人机命令单独开发相应的处理模块,命令的具体实现依赖特定的操作系统以及特定的编程语言。这种实现方式不利于应用的扩展,实现及修改的工作量大、开发周期长,且日常程序的维护、升级都十分困难。为了对人机命令的输入参数进行解析,现有技术是对每一条不同的命令分别编写代码,对其参数进行检查和解析,最终编译生成可执行文件。这样的缺点是工作量大,代码重用率很低,维护、升级困难。

发明内容
本发明要解决的技术问题是克服现有技术中实现人机命令工作量大,维护、升级困难的缺点,解决现有技术中代码重用率低的问题。
本发明上述技术问题这样解决,构造一种基于纯文本的命令脚本文件的人机命令实现方法,包括命令定义脚本、命令生成和执行解析三个部分,其特征在于,在所述命令定义脚本时,由命令生成器产生包含命令集的脚本文件使得命令参数的解析方式被定义成一段SQL语句并保存在该脚本文件中;在所述命令生成和所述执行解析过程中,将对上述包含命令行参数的SQL脚本文件的SQL语句进行解析并将结果送到命令执行模块中。
在本发明提出的基于纯文本的命令脚本文件的人机命令实现方法中,包括以下步骤1)命令执行模块从命令行取出所有参数名称及参数值;2)根据参数的类型将每个参数转换成一个SQL参数声明并初始化;3)从相应命令脚本中取出SQL语句字符串;4)将第2步的字符串插入到第3步命令脚本字符串的头部;5)命令脚本中的SQL语句可以直接使用命令行输入的参数名称及数值,并进行解析;6)数据库系统预先定义一个描述表来传递SQL语句的执行结果,表中至少应包含语句执行情况、语句执行描述等字段;7)命令脚本SQL语句将参数解析的结果写入描述表;8)命令执行模块在提交解析SQL脚本后读取描述表的记录,得到参数解析的结果。
在本发明提出的基于纯文本的命令脚本文件的人机命令实现方法中,所述命令执行模块从命令行取出所有参数名称及参数值,可以通过一个函数完成命令行的语法检查并分离出命令编号及命令参数,并根据命令编号找到预先定义的命令脚本。
在本发明提出的基于纯文本的命令脚本文件的人机命令实现方法中,在所述根据参数的类型将每个参数转换成一个SQL参数声明并初始化步骤中,参数类型在脚本中指定,参数的初始值就是用户在命令行中输入的相应参数值,如命令行中包含可选参数,且用户没有输入可选参数项,则该可选参数的初始值填入该参数的缺省值,缺省值在命令脚本中预定义。
在本发明提出的基于纯文本的命令脚本文件的人机命令实现方法中,所述将步骤2)形成的有关SQL声明及初始化的字符串插入到步骤3)命令脚本字符串的头部,可将用户输入的参数传入到预定义的SQL脚本中,使用户输入的参数名称及参数值可以被SQL语句所解析。
在本发明提出的基于纯文本的命令脚本文件的人机命令实现方法中,所述数据库系统预先定义的传递SQL语句的执行结果的描述表,至少包含语句执行情况字段和语句执行描述字段,所述SQL脚本中预定义了对传入参数的解析方式及解析结果的描述,所述命令执行模块向数据库服务器提交上面的SQL脚本语句,使参数解析的结果写入所述语句执行情况字段和语句执行描述字段。
实施本发明提供的基于纯文本的命令脚本文件的人机命令实现方法进行参数自解析,具有以下有益效果对于任一条人机命令,对命令参数的解析任务可以全部定义在一个文本文件中,也就是说不同命令的输入参数都由其对应的脚本部分自解析,不同命令的开发、维护和升级都只是对命令定义脚本文件的增加、修改,不同产品的人机命令开发都可以使用相同的人机命令执行器及生成器。命令的生成、维护、升级等工作都大大简化,大大加快了开发速度,减少日常维护量,并实现了跨产品的执行代码的完全可重用。


图1是描述基于纯文本的命令脚本文件的人机命令实现方法的模块框图;图2利用本发明基于纯文本的命令脚本文件的人机命令实现方法中实现参数自解析的流程示意图。
具体实施例方式
结合附图1,说明本发明基于纯文本的命令脚本文件的人机命令实现方法。如图1所示,命令生成器101,用于产生包含命令集的脚本文件102,在框103开始对脚本文件进行消息处理线程,有多个命令时,则在命令队列104。命令处理线程105中,在框106中取得命令行,在框107中进行语法检查,在框108中,结合来自命令集102的设置进行权限检查,在框109中,通过与数据库112的交互,进行参数解析,该部分为本发明方法的重点所在。在框110中,与其它操作处理模块配合进行其他操作,将处理结果送到结果链表114,陪数据库系统112在框115中进行结果翻译,形成结果字符串116,与框107、108、109、110产生的结果一样,送到命令结果输出模块117,最后在框118中完成命令字符串接收和返回,接收是指送到终端设备,返回是将来自终端设备的命令字符返回到消息处理线程103。
结合图2,进一步详细说明实现参数自解析的每一步骤。
1)命令执行模块从命令行(框203)取出所有参数名称及参数值(框204),可以通过一个函数完成命令行的语法检查并分离出命令编号及命令参数,并根据命令编号找到预先定义的命令脚本(框201);2)根据参数的类型将每个参数转换成一个SQL参数声明并初始化(框205)。其中参数类型在脚本中指定,参数的初始值就是用户在命令行中输入的相应参数值,如命令行中包含可选参数,且用户没有输入可选参数项,则该可选参数的初始值填入该参数的缺省值,缺省值在命令脚本中预定义(框202);3)从相应命令脚本中取出参数解析及命令处理SQL语句字符串(框206);4)将第2步产生的字符串插入到第3步命令脚本字符串的头部,这样用户输入的参数就传入到了预定义的SQL脚本中,使用户输入的参数名称及参数值可以被SQL语句所解析(框206);5)命令脚本中预定义的SQL语句可以直接使用从命令行传入的参数名称及数值,并进行解析。由于SQL语言同其他编程语言一样,具有变量、流程控制、函数等特性,可以完成任何逻辑编程操作;6)数据库系统预先定义一个描述表来传递SQL语句的执行结果,表中至少应包含语句执行情况(下面以A字段表示),语句执行描述(下面以B字段表示)等字段,SQL脚本中预定义了对传入参数的解析方式及解析结果的描述(框206);7)命令执行模块向数据库服务器提交上面的SQL脚本语句,使参数解析的结果写入描述表的A字段和B字段(框207);8)命令执行模块读取描述表的记录,得到参数解析的结果,并根据结果决定命令的执行流程,即错误终止或继续下一步操作,如框208所示。
从上可见,为实现某种具体操作的命令参数进行合法性检查及边界检查,特别是为了对用户屏蔽数据库系统及具体业务的实现细节,针对用户的命令行输入参数往往与实际需要的操作参数不是直接相关的,因此涉及到对命令行输入参数的自解析。本发明根据SQL语言面向纯文本无需编译的特点,将参数的解析方式定义成一段SQL语句并保存为一个脚本文件,这样在命令执行时只要嵌入相应定义的语句就可得到想要的结果。这样对命令参数的解析任务就可以全部定义在一个文本文件中,也就是说不同命令的输入参数都是由其对应的脚本部分自解析的,命令的生成、维护、升级等工作都大大简化。实现的关键是命令行参数到SQL脚本的输入,以及SQL解析结果到命令执行模块的输出,也就是说关键是在SQL脚本与命令解析模块的交互上。同时,人机命令执行器模块可以预留与客户端GUI(图形用户界面的简称)应用程序的接口,使开发基于人机命令的GUI应用程序有了一个良好的基础。
权利要求
1.一种基于纯文本的命令脚本文件的人机命令实现方法,包括命令定义脚本、命令生成和执行解析三个部分,其特征在于,在所述命令定义脚本时,由命令生成器产生包含命令集的脚本文件使得命令参数的解析方式被定义成一段SQL语句并保存在该脚本文件中;在所述命令生成和所述执行解析过程中,将对上述包含命令行参数的SQL脚本文件的SQL语句进行解析并将结果送到命令执行模块中。
2.根据权利要求1所述方法,其特征在于,还包括以下步骤1)从命令行取出所有参数名称及参数值;2)根据取出的参数类型,将每个参数转换成一个SQL参数声明并初始化;3)从相应命令脚本中取出SQL语句字符串;4)将步骤2)形成的有关SQL声明及初始化的字符串插入到步骤3)命令脚本字符串的头部;5)命令脚本中的SQL语句可以直接使用命令行输入的参数名称及数值,并进行解析;6)在数据库系统中预先定义一个描述表,用于传递SQL语句的执行结果,表中至少应包含语句执行情况、语句执行描述等字段;7)命令脚本SQL语句将参数解析的结果写入所述描述表;8)命令执行模块在提交解析SQL脚本后读取描述表的记录,得到参数解析的结果,并根据结果决定命令的执行流程,即错误终止或继续下一步操作。
3.根据权利要求2所述方法,其特征在于,所述命令执行模块从命令行取出所有参数名称及参数值,可以通过一个函数完成命令行的语法检查并分离出命令编号及命令参数,并根据命令编号找到预先定义的命令脚本。
4.根据权利要求2所述方法,其特征在于,在所述根据参数的类型将每个参数转换成一个SQL参数声明并初始化步骤中,参数类型在脚本中指定,参数的初始值就是用户在命令行中输入的相应参数值,如命令行中包含可选参数,且用户没有输入可选参数项,则该可选参数的初始值填入该参数的缺省值,缺省值在命令脚本中预定义。
5.根据权利要求2所述方法,其特征在于,所述将步骤2)形成的有关SQL声明及初始化的字符串插入到步骤3)命令脚本字符串的头部,可将用户输入的参数传入到预定义的SQL脚本中,使用户输入的参数名称及参数值可以被SQL语句所解析。
6.根据权利要求2所述方法,其特征在于,所述数据库系统预先定义的传递SQL语句的执行结果的描述表,至少包含语句执行情况字段和语句执行描述字段,所述SQL脚本中预定义了对传入参数的解析方式及解析结果的描述,所述命令执行模块向数据库服务器提交上面的SQL脚本语句,使参数解析的结果写入所述语句执行情况字段和语句执行描述字段。
全文摘要
一种基于纯文本的命令脚本文件的人机命令实现方法,包括命令定义脚本、命令生成和执行解析,具体包括由命令生成器产生包含命令集的脚本文件使得命令参数的解析方式被定义成一段SQL语句并保存在该脚本文件中;在命令生成和执行解析过程中,将对上述包含命令行参数的SQL脚本文件的SQL语句进行解析并将结果送到命令执行模块中。利用本发明的方法,对于任一条人机命令,其命令参数的解析任务可全部定义在一个文本文件中,命令的开发、维护和升级都只是对命令定义脚本文件的增加、修改,不同的人机命令开发都可使用相同的人机命令执行器及生成器,使得命令的生成、维护、升级等都大大简化,加快了开发速度,减少日常维护量,实现了跨产品的执行代码的完全可重用。
文档编号G06F9/06GK1501235SQ0311000
公开日2004年6月2日 申请日期2003年3月31日 优先权日2002年11月14日
发明者谢海峰, 李强, 王刚 申请人:深圳市中兴通讯股份有限公司上海第二研究所, 深圳市中兴通讯股份有限公司上海第二
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1