CN101782910A - SQLite可视化管理方法 - Google Patents

SQLite可视化管理方法 Download PDF

Info

Publication number
CN101782910A
CN101782910A CN200910056846A CN200910056846A CN101782910A CN 101782910 A CN101782910 A CN 101782910A CN 200910056846 A CN200910056846 A CN 200910056846A CN 200910056846 A CN200910056846 A CN 200910056846A CN 101782910 A CN101782910 A CN 101782910A
Authority
CN
China
Prior art keywords
sqlite
code
name
data source
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200910056846A
Other languages
English (en)
Other versions
CN101782910B (zh
Inventor
何晓杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shengguan Business Consulting (Shanghai) Co Ltd
Original Assignee
Shengguan Business Consulting (Shanghai) Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shengguan Business Consulting (Shanghai) Co Ltd filed Critical Shengguan Business Consulting (Shanghai) Co Ltd
Priority to CN 200910056846 priority Critical patent/CN101782910B/zh
Publication of CN101782910A publication Critical patent/CN101782910A/zh
Application granted granted Critical
Publication of CN101782910B publication Critical patent/CN101782910B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种SQLite可视化管理方法,进入操作数据库之后,用户输入SQL代码,产生进行代码提示的事件后,检验当前光标所在处的词所在的一句代码,判断当前光标所在处的词是否有上下文,如果有上下文,搜索上下文找表名,若找到表名则取出表内的字段名称向用户提示,否则搜索上下文找别名,若找到表的别名,则在所有的已输入的SQL语句中搜索别名所对应的表的真实名称,若找到表的真实名称,则取出表内的字段名称向用户提示。本发明的SQLite可视化管理方法,可以进行SQL语句代码提示,提高SQLite的开发效率。

Description

SQLite可视化管理方法
技术领域
本发明涉及数据库开发及管理技术,特别涉及一种SQLite可视化管理方法。
背景技术
作为一个日渐流行的数据库,SQLite一直没有一个真正好用的可视化开发、管理集成系统。因此,对于SQLite的操作,只能集中在控制台,或是使用SQLite Database Browser(简称Browser,其官方网站为http://sqlitebrowser.sourceforge.net/)。Browser不支持SQL语句代码提示功能,数据库开发人员只能凭自己对数据库的熟悉,或是参考相关的文档来编写SQL语句,特别是针对初学者,人们经常会忘记一个命令,或是忘记自己的数据库里有什么对象,而查询这些东西,无疑是浪费了时间,降低开发效率,非常不便,并且会因开发人员输入错误而使程序产生问题。
另外,Browser不支持数据库加密,这使得用户对于SQLite的安全性产生的怀疑,并阻碍了它的进一步发展;也不支持DTS(数据传输服务)数据导入,从其他数据库换用SQLite数据库时非常不便。
发明内容
本发明要解决的技术问题是提供一种SQLite可视化管理方法,采用该SQLite可视化管理方法可以进行SQL语句代码提示。
为解决上述技术问题,本发明的SQLite可视化管理方法,进入操作数据库之后,能进行代码提示,进行代码提示包括以下步骤:
一.通过SQL语句操作,用户输入SQL代码;
二.产生进行代码提示的事件后,检验当前光标所在处的词所在的一句代码;
三.判断当前光标所在处的词是否有上下文,上下文指的是一句代码中的一个词前面或后面的词;如果当前光标所在处的词没有上下文,则不进行代码提示;如果当前光标所在处的词有上下文,进行步骤四;
四.搜索上下文,判断能否找到表名,若找到表名,进入步骤七,若找不到表名,进入步骤五;
五.搜索上下文,判断能否找到表的别名,若未找到表的别名,则不进行代码提示;若找到表的别名,则进入步骤六;
六.在所有的已输入的SQL语句中搜索别名所对应的表的真实名称,若未找到表的真实名称,则不进行代码提示;若找到表的真实名称,进行步骤七;
七.加载表名所对应的表;
八.取出表内的字段名称列表;
九.将字段名称向用户提示。
本发明的SQLite可视化管理方法,启动进入操作数据库之后,可以通过可视化图形操作界面选择启动DTS导入功能,DTS导入包括以下步骤:
一.打开要导入数据的SQLite数据库;
二.选择数据源的驱动;
三.连接到数据源;
四.对数据源编写SQL语句,从数据源中选定要导入的数据;
五.将数据源中被选定的数据导入SQLite数据库中;
六.导入完毕后,关闭数据源。
数据源的驱动可以包括ADO驱动方式和ZEOS驱动方式;
本发明的SQLite可视化管理方法,可以对数据库进行加密操作,
新建SQLite数据库时,如需要设定密码,则调用SQLite的sqlite3_key函数,设定密码,然后进入操作数据库;
打开SQLite数据库时,提示输入密码,调用sqlite3_key函数判断密码是否正确,正确则打开SQLite数据库,错误则无法打开;
打开SQLite数据库后,需要更改密码时,调用sqlite3_rekey函数,确认提供的原密码正确后,更改密码。
本发明的SQLite可视化管理方法,通过SQL语句代码提示功能,使编写SQL变得方便,极大地提高了生产力,加快项目开发进度。现有的SQLite可视化管理方法,数据库开发人员只能凭自己对数据库的熟悉,或是参考相关的文档,来编写SQL语句。而采用本方法的SQLite可视化管理工具(SQLite Tool)可以自动地为开发人员提示出所需的SQL语句,节省了熟悉数据库或是参考文档的时间,并且该SQLite可视化管理方法的自动代码提示还可以保证开发人员不会因输入错误而使程序产生问题,从而降低了项目后期对SQL语句的维护成本。另外,采用本方法的SQLite可视化管理工具还能够实现DTS数据导入,使得从其他数据库换用SQLite数据库时,变得非常方便,不需要再花人力,财力去开发数据的转换程序,而是直接使用软件工具中的DTS功能。还解决了长久以来,困挠着众多开发人员的SQLite加密问题,使SQLite数据库变得安全。
附图说明
下面结合附图及具体实施方式对本发明作进一步详细说明。
图1是本发明的SQLite可视化管理方法进行代码提示的一实施方式示意图;
图2是SQLite数据库表的结构示意图;
图3是本发明的SQLite可视化管理方法进行DTS导入一实施方式示意图;
图4是本发明的SQLite可视化管理方法进行SQLite数据库加密一实施方式示意图。
具体实施方式
本发明的SQLite可视化管理方法一实施方式如图1所示,SQLite可视化管理工具软件启动,进入操作数据库之后,能进行代码提示,进行代码提示包括以下步骤:
一.通过SQL语句操作,用户输入SQL代码;
二.产生进行代码提示的事件后,检验当前光标所在处的词所在的一句代码;
三.判断当前光标所在处的词是否有上下文,上下文指的是一句代码中的一个词前面或后面的词,例如“select*from Table”这句代码,则“from”这一词的上文是“select”,下文是“table”;如果当前光标所在处的词没有上下文,则不进行代码提示;如果当前光标所在处的词有上下文,进行步骤四;
四.搜索上下文,判断能否找到表名。由于SQL语句的编写规则,表名为SQL语句中的词,因此搜索上下文即可能找到表名。同上例所述,“select*from Table”这一句代码,词“from”的下文为词“Table”,“Table”为表名。若找到表名,进入步骤七,若找不到表名,进入步骤五;
五.搜索上下文,判断能否找到表的别名。由于SQL语句的编写规则,表的别名为SQL语句中的词,因此搜索上下文即可能找到表的别名。例如“select*from t”这句代码,最后的词“t”即是别名,若未找到表的别名,则不进行代码提示;若找到表的别名,则进入步骤六;
六.在所有的已输入的SQL语句中搜索别名所对应的表的真实名称,例如若已输入的所有SQL语句中有“select*from Table t”这样一句代码,则可以搜索到别名“t”所对应的表的真实名称为“Table”;若未找到表的真实名称,则不进行代码提示;若找到表的真实名称,进行步骤七;
七.加载表名所对应的表,表的结构如图2所示,表内有字段名称列表;
八.取出表内的字段名称列表;
九.将字段名称向用户提示。
代码提示分为以下几个部分:代码关键字解析;上下文搜索;别名搜索;别名匹配;获取指定的表名;完成提示。
代码提示的功能可以最大限度的提升SQLite开发人员的工作效率,它使得开发人员不再需要去记表内的字段,也不会在多表连接时,搞错表内关系。对于初学者来说,代码提示的功能可以让一位初学者不需要记忆关键字或是数据类型,也能够快速的输入代码。
使用本发明的SQLite可视化管理方法一实施例如下:
1)产生进行代码提示的事件,本实施例中,按下Alt+F1,Alt+F2,Alt+F3,或是“.”符号能够进行代码提示,弹出相应的代码提示,因此需要先截获按键。
2)解析当前光标所在处的词所在的一句代码,并获得Token(令牌)。此处涉及编译原理,将当前光标所在处的词所在的一句代码解析成语法树,以便在后续的流程中,从语法树中获得需要的内容。此时语法树的节点上,不仅拥有一个字符串的描述,还应当拥有一个指向其直接根节点的指针。
3)获取需要提示的内容,从语法树中,按Token上下文得到语法树中所对应的点节,比如说数据表的名称,及其所对应的字段等。
4)将获取到的提示内容以列表方式显示给用户。
5)等待用户从提示列表中选择。选择列表的内容有几种方式,一种是继续输入代码,这种情况是为了更精确的过滤需要的内容。第二种是按方向键与回车键从列表中选取,第三种情况是鼠标选中要选择的内容,双击选取。这三种选择方式必须都用消息机制来支持。
6)将用户选定的内容输出到编辑器中。
很多情况下,用户需要在不同数据库间相互导入数据,这就需要DTS(Data Transmission Services,数据传输服务)导入功能,本发明的SQLite可视化管理方法一实施方式如图3所示,能实现DTS(DataTransmission Services,数据传输服务)导入功能。
SQLite可视化管理工具软件启动,进入操作数据库之后,通过可视化图形操作界面,选择启动DTS(Data Transmission Services,数据传输服务)导入功能,包括以下步骤:
一.打开要导入数据的SQLite数据库;
二.选择数据源的驱动,包括ADO和ZEOS驱动方式;
三.连接到数据源;
四.对数据源编写SQL语句,从数据源中选定要导入的数据;
五.验证所述对数据源编写的SQL语句的合法性。如果用户输入的数据是错误的,则生成的SQL语句也会有错,为了避免SQL语句错误引起数据库安全问题,因此先检验SQL语句的合法性。当所述对数据源编写的SQL语句不合法时,不执行导入操作,当所述对数据源编写的SQL语句合法时进入步骤六;
六.启动导入事务。事务用来保持数据的完整性和一致性,当导入数据发生错误时,事务可以将所有的操作一起回滚,而不会在数据库内留下脏数据,若留下脏数据,则可能对下一次的DTS导入造成不可预知的影响;
七.将数据源中被选定的数据导入SQLite数据库中;
八.导入完毕后,结束导入事务,关闭数据源。
DTS导入功能的技术核心是ADO和ZEOS。ADO(ActiveX Data Objects)是微软提供的一个较为通用的数据驱动,它可以操作一些基于OLEDB(对象链接和嵌入数据库)的数据库。而ZEOS是开源社区提供的一个综合的数据驱动(它的主页:http://sourceforge.net/projects/zeoslib),它可以访问现有的几乎所有的数据库。当ADO无法支持某种数据库时,就可以使用ZEOS驱动来进行数据的导入。它的通用性比ADO强得多,但是设置也较为麻烦,因此在采用本发明方法的SQLite可视化管理工具软件中,同时集成了这两种驱动,以便不同需求的开发人员使用不同的DTS解决方案。
本发明的SQLite可视化管理方法一实施方式如图4所示,能实现SQLite数据库的加密功能。
在SQLite官方提供的链接库中,不包含加密的功能,一般的情况下,SQLite被认为无法加密,但是SQLite公开了两个用于加密,修改密码的API(应用程序接口application program interface)函数。实现加密的两个API函数,源码公开如下:
SQLite3_Key:function(db:Pointer;Password:PAnsiChar;Length:Integer):Integer;cdecl;
SQLite3_Rekey:function(db:Pointer;Password:PAnsiChar;Length:Integer):Integer;cdecl;
@SQLite3_Key:=GetProcAddress(DLLHandle,’sqlite3_key’);
@SQLite3_Rekey:=GetProcAddress(DLLHandle,’sqlite3_rekey’);
因此,对这两个API函数进行扩充,并调用,可完成对数据库的加密。   本发明的SQLite可视化管理方法一实施方式采用了经过API修改的链接库,配合相关的API函数调用,来实现SQLite数据库的加密。
本发明的SQLite可视化管理方法进行加密的过程如下,SQLite可视化管理工具软件启动后:
1)新建SQLite数据库时,询问是否需要设定密码,如需要密码则若选“是”,调用SQLite的sqlite3_key函数,设定密码,否则选“否”则使用空密码。然后进入操作数据库。
2)打开SQLite数据库时,提示输入密码,调用sqlite3_key判断密码是否正确,若输入的密码正确则打开SQLite数据库,错误则无法打开。
3)更改密码时,调用sqlite3_rekey,需提供原密码,确认原密码正确后,才允许更改密码;
本发明的SQLite可视化管理方法,用户可以在新建一个SQLite数据库时为它设置密码或在打开一个SQLite数据库后为它修改密码;当进入SQLite操作数据库时,即可使用SQL语句的代码提示功能,例如,按下Alt+F1,Alt+F2,Alt+F3分别对应了提示关键字,函数,数据类型,另外也可以用“.”符号进行动态提示。它改变了以往的SQLite数据库开发人员必须手工输入所有代码的开发方式,能自动进行代码提示和进行DTS导入,极大的提高了开发效率,提高了生产力。

Claims (6)

1.一种SQLite可视化管理方法,其特征在于,进入操作数据库之后,能进行代码提示,进行代码提示包括以下步骤:
一.通过SQL语句操作,用户输入SQL代码;
二.产生进行代码提示的事件后,检验当前光标所在处的词所在的一句代码;
三.判断当前光标所在处的词是否有上下文,上下文指的是一句代码中的一个词前面或后面的词;如果当前光标所在处的词没有上下文,则不进行代码提示;如果当前光标所在处的词有上下文,进行步骤四;
四.搜索上下文,判断能否找到表名,若找到表名,进入步骤七,若找不到表名,进入步骤五;
五.搜索上下文,判断能否找到表的别名,若未找到表的别名,则不进行代码提示;若找到表的别名,则进入步骤六;
六.在所有的已输入的SQL语句中搜索别名所对应的表的真实名称,若未找到表的真实名称,则不进行代码提示;若找到表的真实名称,进行步骤七;
七.加载表名所对应的表;
八.取出表内的字段名称列表;
九.将字段名称向用户提示。
2.根据权利要求1所述的SQLite可视化管理方法,其特征在于,进入操作数据库之后,通过可视化图形操作界面选择启动DTS导入功能,DTS导入包括以下步骤:
一.打开要导入数据的SQLite数据库;
二.选择数据源的驱动;
三.连接到数据源;
四.对数据源编写SQL语句,从数据源中选定要导入的数据;
五.将数据源中被选定的数据导入SQLite数据库中;
六.导入完毕后,关闭数据源。
3.根据权利要求2所述的SQLite可视化管理方法,其特征在于,数据源的驱动包括ADO驱动方式和ZEOS驱动方式。
4.根据权利要求2所述的SQLite可视化管理方法,其特征在于,验证所述对数据源编写的SQL语句的合法性,当所述对数据源编写的SQL语句不合法时,不执行导入操作,当所述对数据源编写的SQL语句合法时,将数据源中被选定的数据导入SQLite数据库中。
5.根据权利要求2或4所述的SQLite可视化管理方法,其特征在于,在将所述数据源中被选定的数据导入SQLite数据库中之前,启动导入事务,在将所述数据源中被选定的数据导入SQLite数据库中之后,结束导入事务。
6.根据权利要求1所述的SQLite可视化管理方法,其特征在于,
新建SQLite数据库时,如需要设定密码,则调用SQLite的sqlite3_key函数,设定密码,然后进入操作数据库;
打开SQLite数据库时,提示输入密码,调用sqlite3_key函数判断密码是否正确,正确则打开SQLite数据库,错误则无法打开;
打开SQLite数据库后,需要更改密码时,调用sqlite3_rekey函数,确认提供的原密码正确后,更改密码。
CN 200910056846 2009-01-15 2009-01-15 SQLite可视化管理方法 Expired - Fee Related CN101782910B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910056846 CN101782910B (zh) 2009-01-15 2009-01-15 SQLite可视化管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910056846 CN101782910B (zh) 2009-01-15 2009-01-15 SQLite可视化管理方法

Publications (2)

Publication Number Publication Date
CN101782910A true CN101782910A (zh) 2010-07-21
CN101782910B CN101782910B (zh) 2013-02-06

Family

ID=42522910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910056846 Expired - Fee Related CN101782910B (zh) 2009-01-15 2009-01-15 SQLite可视化管理方法

Country Status (1)

Country Link
CN (1) CN101782910B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102426637A (zh) * 2011-11-01 2012-04-25 北京人大金仓信息技术股份有限公司 一种嵌入式数据库加密存储方法
CN102520966A (zh) * 2011-12-28 2012-06-27 东软集团股份有限公司 一种代码提示方法和装置
CN103593362A (zh) * 2012-08-15 2014-02-19 上海斐讯数据通信技术有限公司 数据库管理、检索方法及嵌入式系统
CN106649449A (zh) * 2016-09-22 2017-05-10 济南浪潮高新科技投资发展有限公司 一种基于SQLite的内外网数据交换方法
CN109739493A (zh) * 2019-01-18 2019-05-10 宜创(北京)科技有限公司 数据库操作语句的生成方法、装置、电子设备及存储介质
CN112148748A (zh) * 2020-09-16 2020-12-29 上海中通吉网络技术有限公司 Sql字段别名的自动提示方法、装置和设备
CN112363711A (zh) * 2020-11-03 2021-02-12 深圳市大富网络技术有限公司 一种代码提示方法、装置及计算机可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1801145A (zh) * 2005-01-06 2006-07-12 中兴通讯股份有限公司 一种提高应用系统访问数据库效率的方法
CN100583094C (zh) * 2006-04-19 2010-01-20 维豪信息技术有限公司 一种数据描述和数据显示分离的处理方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102426637A (zh) * 2011-11-01 2012-04-25 北京人大金仓信息技术股份有限公司 一种嵌入式数据库加密存储方法
CN102426637B (zh) * 2011-11-01 2016-04-13 北京人大金仓信息技术股份有限公司 一种嵌入式数据库加密存储方法
CN102520966A (zh) * 2011-12-28 2012-06-27 东软集团股份有限公司 一种代码提示方法和装置
CN102520966B (zh) * 2011-12-28 2014-03-19 东软集团股份有限公司 一种代码提示方法和装置
CN103593362A (zh) * 2012-08-15 2014-02-19 上海斐讯数据通信技术有限公司 数据库管理、检索方法及嵌入式系统
CN106649449A (zh) * 2016-09-22 2017-05-10 济南浪潮高新科技投资发展有限公司 一种基于SQLite的内外网数据交换方法
CN109739493A (zh) * 2019-01-18 2019-05-10 宜创(北京)科技有限公司 数据库操作语句的生成方法、装置、电子设备及存储介质
CN112148748A (zh) * 2020-09-16 2020-12-29 上海中通吉网络技术有限公司 Sql字段别名的自动提示方法、装置和设备
CN112363711A (zh) * 2020-11-03 2021-02-12 深圳市大富网络技术有限公司 一种代码提示方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN101782910B (zh) 2013-02-06

Similar Documents

Publication Publication Date Title
CN101782910B (zh) SQLite可视化管理方法
JP6714024B2 (ja) 言語入力データからnグラムおよび概念関係の自動生成
EP3514694B1 (en) Query translation
US7720674B2 (en) Systems and methods for processing natural language queries
US7912700B2 (en) Context based word prediction
EP1315086B1 (en) Generation of localized software applications
US9531706B2 (en) Icon password setting apparatus and icon password setting method using keyword of icon
US20140156282A1 (en) Method and system for controlling target applications based upon a natural language command string
CN101346716A (zh) 通过利用查找和替换输入的派生的查找和替换功能来编辑文本的方法和系统
CN103080873A (zh) 用于输入法编辑器的扩展框
CA2684822A1 (en) Data transformation based on a technical design document
KR20160124079A (ko) 인-메모리 데이터베이스 탐색을 위한 시스템 및 방법
WO2013071305A2 (en) Systems and methods for manipulating data using natural language commands
CN101375279A (zh) 多字字轮
JP2022538704A (ja) スパン強調表示整列を用いた正規表現生成
CN113297251A (zh) 多源数据检索方法、装置、设备及存储介质
CN101261583A (zh) 一种系统功能快速调用方法
CN112328621A (zh) Sql转换方法、装置、计算机设备及计算机可读存储介质
Cisco The OQL Language
Cisco The OQL Language
Cisco The OQL Language
Cisco The OQL Language
WO2003042870A1 (en) For network-based search service using resemblant words and method thereof
CN112394926A (zh) 一种基于自然语言模型的码床系统
JP2022538703A (ja) 正規表現生成のためのユーザインターフェイスコマンド

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130206

Termination date: 20150115

EXPY Termination of patent right or utility model