TC官方合作论坛

标题: 〔TC5.0〕 sqlite数据库和表格的结合使用 [打印本页]

作者: apq0001    时间: 2015-4-15 14:05
标题: 〔TC5.0〕 sqlite数据库和表格的结合使用
本帖最后由 apq0001 于 2015-4-27 14:26 编辑

教程的功能:使用sqliteStdio编辑数据库,一键展示数据库数据,表格的分页展示功能

TC5.0 本教程使用到的API:

sqlitesqlarray(db_name,sql,ret_arr)                                   //对sqlite数据库进行相关操作,并返回结果gridfillarraydata(Control_ID,arraydata,parentID="")              //将二维数组中的数据填充到表格中
gridsetshowpagemode(id,nRow,parentID="") me,sql,ret_arr) //为表格设置分布模式,以多少行为一页显示
gridshowprevpagedata(id,parentID="")                             //跳转并显示上个页面的数据
gridshownextpagedata(id,parentID="")                             //跳转并显示上下个页面的数据

gridshowcustompagedata(id,n,parentID="")                      //在分页模式下,显示指定页面的数据
gridgetcurpageindex(id,parentID="")                               //获取分页模式下,当前页面的编号
gridgetallpagecount(id,parentID="")                                //获取表格设置分页模式以后有多少个分页
gridgetpagearraydata(id,nRow,parentID="")                     //在分布模式下,显示指定页面的数据


本教程分为三部分:第一部分为sqliteStdio的使用,第二部分为填充表格数据的使用,第三部分为表格的分页展示功能实现,内容有点长,请耐心看

*********第一部分**********:

SqliteStudio是一个可视化的Sqlite数据库管理工具,使用此工具你可以很方便的创建和修改Sqlite2、Sqlite3版本数据库,支 持表、索引、触发器、视图创建和修改。比起其它的SQLite管理工具,SqliteStudio具有绿色单文件、小巧、易操作、功能强等优点,可以同时 打开多个数据库文件,还内置强大的sql查询编辑器,如果你熟悉sql语言,你可以在sql查询编辑器使用sql命令完成所有的数据库修改操作。

软件特色:

1、功能完善的sqlite2和sqlite3工具,视图编码支持utf8。
2、支持导出数据格式:csv、html、plain、sql、xml。
3、可同时打开多个数据库文件。
4、支持查看和编辑二进制字段。



以下是使用教程:

一、在SqliteStudio中创建数据库和表。

1、选择菜单“数据库”中“添加数据库”,输入文件名,比如:myTest,选择“好”。



2、双击
myTest文件,右键单击“表”项,选择“新建表”。



3、在弹出的新建表窗口中输入“表名”,比如:emp。在“添加列”中输入字段名,选择“数据类型”,填写“大小”。
比如:字段为”id“,数据类型选”INT“,选择“添加”。



4、同样的方法,继续“添加列”,比如:

字段名:name,VARCHAR,100。
字段名:age,VARCHAR,100。

字段名:**,VARCHAR,100。
字段名:salary,VARCHAR,100。
选择“添加”。列加完后,点击“创建”,这样我们emp表创建完成。



5、双击左边“emp"表。刚才输入的列名内容显示出来,一般使用id --- INT为主键,不要问我为神马,请自行百度。


6、向emp表录入数据,我们选择”数据“,再选择加号键,自动生成一行空白行,在对应的列名称中输入内容。比如:zzz,123,139等,依此类推。填好后打勾:保存即可(如下图所示:)。



索引、触发器创建方法也很简单,根据向导提示操作即可

二、在SqliteStudio中如何使用SQL查询编辑器。

Sqlite数据库和其它关系型数据库一样,都支持标准的sql语言,如果您熟悉SQL语言,所有数据库的操作你都可以使用它来完成,小编接下来为大家简单介绍一下使用方法。
1、比如我们要在user表中新增一条记录,具体方法:打开”工具 ----- SQL查询编辑器“,在框中输入命令:比如:insert into emp(id,name,age,**,salary) values(5,'钱七','30','男','4000'),点击”执行查询“即可新增成功。



2、比如我们要在user表要查询id=1记录,在sql查询编辑器里输入”select * from emp where id=1“,执行查询就可以(如下图所示:)。



(第1排的内容立即被查询显示出来了,用时也仅0.000596秒( 1 row(s) read in 0.000596 second(s))。





*********第二部分**********:
表格数据填充:

1.首先将我们上一部分教程做好的数据库文件myTest复制到工程的资源目录下,然后在TC5.0里面将数据库文件加入到资源中,如图:



2.在工程的设计面板上新建一个表格和一个按钮,然后在按钮功能里加入如下代码:
    // 1 查询数据库表得到存储结果ret_arr
    var ret,ret_arr,err
    ret = sqlitesqlarray("rc:myTest","select * from emp",ret_arr)
    // 2 填充结果数据到表格
    gridfillarraydata("grid",ret_arr)


如图:


3.运行工程,看下效果吧,如图:



备注:如果表格存在固定行的话会自动填充表头哦,如果没有的话只填充数据

*********第三部分**********:表格数据分页展示:


1.紧接第二部分,我们增加“设置/退出分页显示”,“获取当前分页索引”,“获取分页数量”,“得到分页数据”等,如图:




2.由于API 参数很少,一看就懂,这里就不多描述了,这里说下操作步骤和注意事项:

先贴代码:

// 填充数据
功能 按钮0_点击()
    // 1 查询数据库表得到存储结果ret_arr
    var ret,ret_arr,err
    ret = sqlitesqlarray("rc:myTest","select * from emp",ret_arr)
    // 2 填充结果数据到表格
    gridfillarraydata("grid",ret_arr)
结束

// 设置分页显示
功能 按钮1_点击()
    //这里添加你要执行的代码
    var nRow = editgettext("editrows")
    gridsetshowpagemode("grid",nRow)
结束

// 显示上一页数据
功能 按钮2_点击()
    //这里添加你要执行的代码
    gridshowprevpagedata("grid")
结束

// 显示下一页数据
功能 按钮3_点击()
    //这里添加你要执行的代码
    gridshownextpagedata("grid")
结束

// 显示自定义页数据
功能 按钮4_点击()
    //这里添加你要执行的代码
    var nPage = editgettext("editpage")
    gridshowcustompagedata("grid",nPage)
结束

// 退出分页显示
功能 按钮8_点击()
    //这里添加你要执行的代码
    gridcancelshowpagemode("grid")
结束

// 得到自定义页数据
功能 按钮12_点击()
    //这里添加你要执行的代码
    var nIndex = editgettext("editcoustom")
    var str = gridgetpagearraydata("grid",nIndex)
    messagebox("二维数组: "& str)
结束

// 得到当前页索引
功能 按钮9_点击()
    //这里添加你要执行的代码
    var nIndex = gridgetcurpageindex("grid")
    messagebox("当前分页索引: "& nIndex)
结束

// 得到所有分页数量
功能 按钮10_点击()
    //这里添加你要执行的代码
    var nCount = gridgetallpagecount("grid")
    messagebox("当前分页数量: "& nCount)
结束


// 得到当前页数据
功能 按钮11_点击()
        //这里添加你要执行的代码
        var nIndex = editgettext("editpage")
    var str = gridgetpagearraydata("grid",nIndex)
    messagebox("二维数组: "& str)
结束


操作步骤:

1.实现分页显示时使用 gridsetshowpagemode ,可以在插入数据之前或者之后使用都可以。
2.使用新数据源作为分页展示之前需要使用 gridcancelshowpagemode 退出分页显示,然后插入数据,再使用 gridsetshowpagemode 设置分页显示,如果不退出分页显示而重复使用 gridsetshowpagemode 的话,针对的数据源一直为之前的数据源,这里注意 gridcancelshowpagemode 会自动将所有数据展开在一个页面显示,即恢复到 设置分页显示之前的普通显示模式(即非分页显示模式)。
3.填充数据后修改表格单元格内容不会影响到数据库,即数据修改只针对表格数据,对数据库没有影响
4.使用 gridgetpagearraydata 得到的二维数组字符串经过 stringtoarray 转换后即可使用,得到的二维数组字符串截图如下:



*********最后放出所有使用到的附件,请使用TC5.0打开,4.0没有此功能**********:
V2中文汉化版:http://www.ddooo.com/softdown/39019.htm ,附件在此: SqliteStudio(sqlite数据库管理工具) v2.15中文版.rar
V3英文版:http://sqlitestudio.pl/?act=download

TC测试程序: filldata.rar (1.48 MB, 下载次数: 1055)

*********特别注意*************

V2版需要放在英文路径下,否则会提示找不到路径

如果对默认字体感觉不爽的话可以在  "工具 ---- 设置"  里修改字体和显示风格


这里附加一行注意信息:
    以上教程使用的数据库文件指的是你建立数据库时使用到的那个文件,而不是你使用sqlitestudio导出的任意文件,sqlitestudio导出的是其他格式例如csv,sql,html,xml等,不是数据库格式,请大家注意


作者: baby杰杰    时间: 2015-4-15 14:29
好强大的样子
作者: 忆辰辅助    时间: 2015-4-15 15:13
本帖最后由 忆辰辅助 于 2015-4-15 15:14 编辑

版版使用的这些函数确保当前TC版本里都有么?

gridsetshowpagemode

比如这个就没找到
好吧,原来4.11里有

作者: laowantong    时间: 2015-4-15 15:51

作者: liuhr_2000    时间: 2015-4-18 11:59
能不能支持excel
作者: apq0001    时间: 2015-4-18 16:16
liuhr_2000 发表于 2015-4-18 11:59
能不能支持excel

暂时不行
作者: bloodeagle    时间: 2015-5-5 09:18
以上教程使用的数据库文件指的是你建立数据库时使用到的那个文件 在哪了呢??
作者: apq0001    时间: 2015-5-5 11:45
就是用工具添加数据库时你填写一个名字,然后工具就自动给你生成了一个空白的db文件,你找找
选择路径时是保存按钮 而不是 打开按钮,注意这个细节
作者: ledcer    时间: 2015-5-6 22:19
sqlite数据库不在本地,如果在局域网的一个linux主机上,也能访问到吗?
作者: apq0001    时间: 2015-5-7 10:18
这个好像不行,这个应该要使用网络通**问
作者: My水乐    时间: 2015-9-26 18:20
谢谢分享 顶一下
作者: 461188000    时间: 2015-10-9 20:39
为啥不弄成 支持文本或者excel
作者: haohuaiqi    时间: 2015-11-11 20:01
sddddddddddd
作者: a145356    时间: 2016-7-28 21:11
数据库在资源目录下,资源是绑定在exe里面的,数据库增加了,exe会不会改变?




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1