TC官方合作论坛

标题: TC5.0 数据库功能探索 [打印本页]

作者: kevinqq    时间: 2015-3-17 11:42
标题: TC5.0 数据库功能探索
     在TC5.0版本之前,有不少用户咨询,如何使用TC访问 sqlite 这种轻小型数据库,结论是使用各种插件才能辅助支持.
     在TC5.0版本中,已经内置了sqlite数据库,大家可以直接通过 下面两个函数来直接访问

  1. sqlitesqlarray(数据库位置,sql语句,返回数组)
复制代码
1. sqlitesqlarray 函数的命令
参数:
   数据库位置:顾名思义,大家明白是存放数据库的地方
   sql语句:在数据库中最常规的操作方式就是通过 命令执行sql语句 执行对应的操作,例如 创建表,插入数据,新增数据,删除数据等等
   返回数组: 这个将是我们要详细介绍的,大家只有知道了返回数组的详细结构,才能熟悉的操作,对应的结果


下面我们看一段代码 :
  1. 变量 ret_arr,err
  2.     变量 ret = sqlitesqlarray("d:/sdcard/test","create table test(id integer primary key autoincrement,name varchar(100))",ret_arr)//创建表
  3.     如果(!ret)
  4.         获取错误信息(err)
  5.         消息框("创建表:"& err)
  6.     结束
  7.    
  8.     遍历(变量 i=0;i < 10;i++)
  9.         ret = sqlitesqlarray("d:/sdcard/test","insert into test values(null,\'测试数据库" & i & "\');",ret_arr) // 表创建成功了,往表里面插入数据
  10.         如果(!ret)
  11.             获取错误信息(err)
  12.             消息框("插入数据:"& err)
  13.             返回 ""
  14.         结束
  15.     结束
  16.     //上面我们插入数据完成后 现在可以进入我们最后的步骤,查找数据,并以数组的方式返回
  17.     ret = sqlitesqlxml("d:/sdcard/test","select * from test",ret_arr)
  18.     如果(!ret)
  19.         获取错误信息(err)
  20.         消息框("查询数据:"& err)
  21.         返回 ""
  22.     结束
复制代码

看完上面的代码,大家应该有一个简单的了解:
1.访问sqlite数据库 是TC5.0的 内置api 不需要通过外部插件来实际,此接口可以访问不同版本的sqlite数据库 当然不同的版本之间会有微小的差异,这个请大家使用的过程中要注意一下返回的结果
2.所的有功能操作只在一个函数里面,方便易用
3.我们看下代码最后执行的数组返回数据的截图


图1

图2

图3(返回xml格式的图截图,图片展示格式有点乱)

2.传统数据库的应用
使用过4.0的小伙伴们应该都知道,TC提供了一个利用ODBC驱动访问数据的接口
  1. database(c**tr,sqlStr,rline,rtext,rerror)  
  2. 功能说明  连接数据库,执行一条SQL语句,理论上支持所有数据库(用户可自行在网上查询各种数据库连接字串),目前测试支持(MSSQL,MYSQL,ACCESS)
  3. c**tr:连接字串(每种数据库略有不同),不区分大小写,用户需根据自己实际情况填写连接字串
  4. sqlStl:要执行的SQL语句(每种数据库略有不同),不区分大小写
  5. rline:返回受影响的行数(如增删改了几行,查询时,该值为0,某些数据库下该值可能获取不到,这种情况下值也为0)
  6. rtext:如果为查询模式,返回查询数据的二维数组
  7. rerror:返回错误信息字符串
  8. 返回值 成功返回0,失败返回-1

复制代码

传统数据库 比较关键的一个点就是在于 odbc驱动的连接,但是这个在网上也有很多相关的教程直接学习,在帮助文档中也列了几类常用的 连接字符串 大家可以参考 下面是一个access数据库的演示源码
  1. var c**tr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&系统获取进程路径()&"yn.mdb"
  2.     var sql = "CREATE TABLE 创建( 姓名 VARCHAR(100) not NULL,年龄 VARCHAR(100) not null,性别 VARCHAR(100) not null)"
  3.     var line = 0
  4.     var ret_array
  5.     var err
  6.     var ret
  7.     sql = "SELECT * FROM 创建"
  8.     //查询数据
  9.     ret = database(c**tr,sql,line,ret_array,err)
复制代码

图4(返回的数组结果 与 sqlite数据库执行 返回的结果是一模一样的格式)

下面附件是我们今天详解简单的示例,大家可以下载学习 如何把数据库的内容写入表格

数据库演示.rar (72.82 KB, 下载次数: 1482)










作者: zhujun8469    时间: 2015-3-17 13:23
顶一个~
作者: veeyoo    时间: 2015-3-17 18:11
谢谢,学习一下。。顺便请教下sqlite和Access用哪种好点呢?
作者: kevinqq    时间: 2015-3-17 18:44
veeyoo 发表于 2015-3-17 18:11
谢谢,学习一下。。顺便请教下sqlite和Access用哪种好点呢?

sqlite 更加小巧
作者: qjj754    时间: 2015-3-17 19:40
kevinqq 发表于 2015-3-17 18:44
sqlite 更加小巧

顶呀. 我已经在用5.0的写出来数据库了 确实比老版本的好用
作者: kevinqq    时间: 2015-3-17 21:29
qjj754 发表于 2015-3-17 19:40
顶呀. 我已经在用5.0的写出来数据库了 确实比老版本的好用

有什么问题 欢迎及时反馈,我们开发人员会立即处理
作者: 指天椒    时间: 2015-3-17 21:36
请问一下sqlite需要安装什么组件或是什么程序才能打开或用TC连接吗? Access呢?现在我是用Access,安装了整个office,因为电脑有wps了,卸载了office不知道TC还能连接上它不?
作者: kevinqq    时间: 2015-3-17 22:00
指天椒 发表于 2015-3-17 21:36
请问一下sqlite需要安装什么组件或是什么程序才能打开或用TC连接吗? Access呢?现在我是用Access,安装了 ...

5.0内置了这种数据库类型 不需要安装任何其他程序或者组件 TC直接可以使用
作者: veeyoo    时间: 2015-3-18 18:26
不知道加多几条常用的命令好不好,比如创建,查询插入更新删除之类的给我们新手用,当需要深入的时候再完全自己写语句
作者: 大漠一滴水    时间: 2015-3-27 23:53
最好能做一个数据库完整例子,让菜鸟们学一下或有个大致了解
作者: gqxing    时间: 2015-4-22 00:45
数据文件在哪?
作者: kelejiabing101    时间: 2015-5-23 12:06
老大 问个应用问题 ,我要插入数据,但是插入的数据量有点大.问题来了 反复插入数据 数据库直接卡死掉了或者耗时很长 很长 无法忍受的地步

插入的数据每次插入数据 几千到上万,有什么解决的办法吗?

作者: tan0360    时间: 2015-6-5 22:58
数据库能干嘛???求小编下次用中文代码做教程好吗。。。小白,英文代码理解吃力。。。
作者: lian43210    时间: 2015-7-20 11:38
新的数据库功能是免费的,还是只能会员使用?
作者: kevinqq    时间: 2015-7-20 14:31
lian43210 发表于 2015-7-20 11:38
新的数据库功能是免费的,还是只能会员使用?

免费的
作者: lian43210    时间: 2015-7-20 15:44
kevinqq 发表于 2015-7-20 14:31
免费的

谢谢.但是...我的之前写的程序都要重写吗........TC5.0不支持之前的东西啊
作者: cangzhouzhijun    时间: 2015-8-30 00:06
支持一下
作者: 我爱酱油    时间: 2015-12-20 18:23
不觉明丽 MARK
作者: zmy19891125    时间: 2016-5-6 16:22
这是我第一次正儿八经的评论!!
作者: zmy19891125    时间: 2016-5-6 16:23
赞**!这个真强大!
作者: mishu720    时间: 2016-6-2 16:35
大大  我用: 数据库(c**tr, sql, line, ret_array, err)  这条命令   在WIN7上没有问题  但是程序在XP上就会出现:初始化失败。  不论是在XP还是在WIN7下编辑出来的程序都会这样,而且我换过很多电脑测试,求指点迷津




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