System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及交互界面领域,具体提供一种跨数据库平台的命令行界面及读写操作方法。
技术介绍
1、早期用户使用数据库时,必须要使用随该产品一同发布的一些工具集来访问数据库。如今,现代应用场景对数据库类型的需求日益复杂,多种不同的数据库经常被结合在一起使用。在这种场景下,由于不同平台的命令行界面之间都是独立的,用户缺乏一个统一的工具,因此需要在多个数据库的交互界面之间切换操作,不够方便。
2、于是自90年代开始,odbc、jdbc等应运而生。它们提供了一套标准的接口,让各种语言的(如c、java等)客户端的程序可以通过它们访问数据库。用户通过代码同时访问不同的数据库成为可能。
3、然而,对于非开发人员而言,需要java、c等语言中使用这些接口,对于用户的程序语言知识基础较高(需要自己维护各个类型和指针)。如果能推出一个使用简单的cli能够访问多个数据库,对于这类用户帮助巨大。
4、此外,目前的数据库产品中,大部分指令都是在服务端完成的。然而,一些变量设置,循环等操作(例如mysql中的set@v=3,loop...end loop)可以在本地完成,提高效率。
5、此外,目前的sql在变量代入存在诸多限制,例如只能将代入到一般sql语句中的“值”的位置(例如select*from tb where x=@v)。若要创建一个由以e1,e2,...,e100为列的名字的表格,则上述变量设置和循环语句都没有帮助。
技术实现思路
1、本专利技术是针
2、本专利技术进一步的技术任务是提供一种设计合理,安全适用的跨数据库平台的命令行界面读写操作方法。
3、本专利技术解决其技术问题所采用的技术方案是:
4、一种跨数据库平台的命令行界面,具有如下步骤:
5、s1、接受所有sql语句,以“;”结尾;
6、s2、变量的定义和运算指令,所述运算指令以“:”开头,以“;”结尾;
7、s3、界面的定制化指令,以“:”开头,以“;”结尾;
8、s4、快捷指令,以“\”开头,末尾没有。
9、进一步的,在步骤s2中,进一步包括:
10、(1)定义变量;
11、(2)赋值,或执行表达式运算a=b+c;
12、(3)循环,允许用户重复执行操作;
13、(4)多线程,用户多并行的执行操作。
14、进一步的,用户当前已连接到数据库,创建多条与现有连接相同配置的若干新连接,进行所要并行的操作。
15、进一步的,在步骤s3中,进一步包括:
16、(1)创建连接,按照给定的url进行对服务器的连接;
17、(2)显示现有连接,显示所有本界面已经创建的连接,以及名字和编号;
18、(3)删除连接,将指定名字和编号的连接删去,如果没有指定名字和编号,则会关闭当前使用的连接;
19、(4)运行文件,将运行指定路径的文件,文件支持的语法与本界面的语法相同;
20、(5)修改输出目标,修改输出路径到给定文件,如果没有指定路径,则会修改为在当前终端输出。
21、进一步的,在步骤s4中,进一步包括:
22、(1)退出“\q”;
23、(2)帮助功能“\h”,用户输入“\h<keyword>”得到给定关键字的帮助文档;
24、本界面提供一个关键的文本嵌入功能,在输入sql时,使用${...}将表达式的值嵌入在任何部分。
25、一种跨数据库平台的命令行界面读写操作方法,用户界面位于标准数据库接口的上层,调用所述接口来与数据库交互并进行读写操作,具体步骤为:
26、s1、用户在本cli中输入指令,解释器会根据输入指令的格式进行分类,然后构建对应的抽象语法树;
27、s2、执行模块在本地维护自己的内存,并维护所有连接的所有信息,在抽象语法树构建完毕后,cli会将抽象语法树上表达式节点全部计算成结果值。
28、s3、在输出模块中,如果指令有结果输出,执行模块还会根据输出物的类型,把结果排版并输出。
29、进一步的,在步骤s1中,首先解释器会读取第一个非空格的字符,并进行如下分类处理:
30、(1)冒号“:”,解释器识别为运算或定制化指令;
31、(2)反斜杠“\”,解释器识别为快捷指令;
32、(3)其它,解释器识别为sql指令;
33、之后,按照token逐个识别指令并构建ast。
34、进一步的,在步骤s2中,cli会根据输入的语句类型,在本地执行,或者通过平台的接口发送到服务器执行;
35、(1)运算指令和循环指令,执行模块在进程内创建自己的变量,来存储用户定义的变量的值用于指令操作;
36、(2)快捷指令,模块在本地执行即可;
37、(3)连接相关的指令,执行模块利用平台提供的接口,进行联机的创建或者关闭,并更新本地保存的连接信息;
38、(4)多线程相关的指令,执行模块会根据当前的连接,创建一个属性与之相同的全新连接,作为新建的线程所使用的连接,在线程结束后,关闭这条新建的连接;
39、(5)sql指令,执行模块通过数据库的接口发送到服务端,并接收结果。
40、本专利技术的一种跨数据库平台的命令行界面及读写操作方法和现有技术相比,具有以下突出的有益效果:
41、本专利技术能够使用一个cli对多个平台的连接进行管理,对多个数据库平台进行操作,不需要对程序语言和数据库接口过多的基础知识,就能使用cli完成对数据库的操作。
本文档来自技高网...【技术保护点】
1.一种跨数据库平台的命令行界面,其特征在于,具有如下步骤:
2.根据权利要求1所述的一种跨数据库平台的命令行界面,其特征在于,在步骤S2中,进一步包括:
3.根据权利要求2所述的一种跨数据库平台的命令行界面,其特征在于,用户当前已连接到数据库,创建多条与现有连接相同配置的若干新连接,进行所要并行的操作。
4.根据权利要求3所述的一种跨数据库平台的命令行界面,其特征在于,在步骤S3中,进一步包括:
5.根据权利要求4所述的一种跨数据库平台的命令行界面,其特征在于,在步骤S4中,进一步包括:
6.一种跨数据库平台的命令行界面读写操作方法,其特征在于,用户界面位于标准数据库接口的上层,调用所述接口来与数据库交互并进行读写操作,具体步骤为:
7.根据权利要求6所述的一种跨数据库平台的命令行界面读写操作方法,其特征在于,在步骤S1中,首先解释器会读取第一个非空格的字符,并进行如下分类处理:
8.根据权利要求7所述的一种跨数据库平台的命令行界面读写操作方法,其特征在于,在步骤S2中,CLI会根据输入的语句类
...【技术特征摘要】
1.一种跨数据库平台的命令行界面,其特征在于,具有如下步骤:
2.根据权利要求1所述的一种跨数据库平台的命令行界面,其特征在于,在步骤s2中,进一步包括:
3.根据权利要求2所述的一种跨数据库平台的命令行界面,其特征在于,用户当前已连接到数据库,创建多条与现有连接相同配置的若干新连接,进行所要并行的操作。
4.根据权利要求3所述的一种跨数据库平台的命令行界面,其特征在于,在步骤s3中,进一步包括:
5.根据权利要求4所述的一种跨数据库平台的命令行界面,其特征在于,在步骤s...
【专利技术属性】
技术研发人员:陆嘉辉,
申请(专利权)人:山东浪潮数据库技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。