SQLite 模块

CBrother在1.1.0版本提供了一个SQLite扩展,它可以帮助你操作SQLite数据库。

SQLite用法

  1. import CBSQLite.code
  2. function main(parm)
  3. {
  4. var sqlite = new SQLite(GetRoot() + "aaa.db");
  5. if(!sqlite.connect())
  6. {
  7. print "sqlite connect err!!";
  8. return;
  9. }
  10. print GetRoot() + "aaa.db";
  11. var res = sqlite.upDate("CREATE TABLE IF NOT EXISTS test (intv INTEGER,strv VARCHAR(100) NOT NULL, floatv FLOAT)");
  12. if(!res)
  13. {
  14. print "update err " + sqlite.getErr();
  15. }
  16. var res = sqlite.upDate("INSERT INTO test (`strv`, `intv`, `floatv`) VALUES ('333', 222, 10.12)");
  17. if(!res)
  18. {
  19. print "update err " + sqlite.getErr();
  20. }
  21. var res = sqlite.query("select * from test");
  22. if(!res)
  23. {
  24. print "query err " + sqlite.getErr();
  25. return;
  26. }
  27. while(sqlite.next())
  28. {
  29. var strv = sqlite.getString(0);
  30. var intv = sqlite.getInt(1);
  31. var floatv = sqlite.getInt(2);
  32. print "sqlite data: " + strv + " " + intv + " " + floatv;
  33. var strv2 = sqlite.getString("strv");
  34. var intv2 = sqlite.getInt("intv");
  35. var floatv2 = sqlite.getInt("floatv");
  36. print "2 sqlite data: " + strv2 + " " + intv2 + " " + floatv2;
  37. var strv3 = sqlite.getValue(0);
  38. var intv3 = sqlite.getValue("intv");
  39. var floatv3 = sqlite.getValue("floatv");
  40. print "3 sqlite type: " + CBType(strv2) + " " + CBType(intv2) + " " + CBType(floatv2);
  41. print "3 sqlite data: " + strv2 + " " + intv2 + " " + floatv2;
  42. }
  43. sqlite.freeQuery();
  44. sqlite.closeConnect();
  45. }

结果:

  1. sqlite data: 222 333 10
  2. 2 sqlite data: 333 222 10
  3. 3 sqlite type: string int int
  4. 3 sqlite data: 333 222 10
  5. sqlite data: 222 333 10
  6. 2 sqlite data: 333 222 10
  7. 3 sqlite type: string int int
  8. 3 sqlite data: 333 222 10

SQLite接口

函数描述用法
SQLite(fileName,outTime) 构造函数,fileName为db文件绝对路径,outTime为db被其他连接锁定时的等待时间(单位:毫秒),不写默认不等待 var sqlite = new SQLite(GetRoot() + "test.db")var sqlite = new SQLite(GetRoot() + "test.db",3000)
connect() 连接数据库,返回true为连接成功。没有数据库文件时会创建。 sqlite.connect()
closeConnect() 断开连接 sqlite.closeConnect()
upDate(sql) 更新数据库,增删改类语句都用这个。传入sql字串,返回true为更新成功。 sqlite.upDate(sql)
query(sql) 查询数据库,传入sql字串,返回true为查询成功。 sqlite.query(sql)
next() 查询后遍历查询结果,false为到表尾 sqlite.next()
getString(index) 获取查询结果,强转string 参数传整数按照坐标查找,传字串按照列名查找 返回string var str = sqlite.getString(0)var str = sqlite.getString("key")
getInt(index) 获取查询结果,强转int 参数传整数按照坐标查找,传字串按照列名查找 返回int var i = sqlite.getInt(0)var i = sqlite.getInt("key")
getLong(index) 获取查询结果,强转long 参数传整数按照坐标查找,传字串按照列名查找 返回int var i = sqlite.getLong(0)var i = sqlite.getLong("key")
getFloat(index) 获取查询结果,强转float 参数传整数按照坐标查找,传字串按照列名查找 返回float var f = sqlite.getFloat(0)var f = sqlite.getFloat("key")
freeQuery() 释放查询结果,如果不释放,会在下次执行sql或关闭连接时释放。 sqlite.freeQuery()
getErr() 获取sqlite错误信息 var err = sqlite.getErr()