lua简单操作sqlite3
来源:互联网 发布:windows live安装 编辑:程序博客网 时间:2024/05/19 12:24
luasql模块支持sqlite3,可以完成最基本的数据库功能,不过官方文档上写得不是很详细。扫了下源代码,外加实验了下,得出了点经验。
环境
Windows XP,LuaForWindows
代码
require"luasql.sqlite3"function enumSimpleTable(t) print"-------------------" fork,v in pairs(t) do print(k, " = ", v) end print"-------------------\n"endfunction rows(cur) returnfunction(cur) localt = {} if(nil~= cur:fetch(t, 'a')) then return t elsereturn nil end end,curendenv = assert(luasql.sqlite3())db =assert(env:connect("test.db")) db:setautocommit(false)res = assert(db:execute [[CREATE TABLEpeople(name text, sex text)]])res = assert(db:execute [[INSERT INTOpeople VALUES('程序猿','男')]])res = assert(db:execute [[INSERT INTOpeople VALUES('程序猿老婆', '女')]])assert(db:commit()) res = assert(db:execute [[SELECT * FROMpeople]])colnames = res:getcolnames()coltypes = res:getcoltypes()enumSimpleTable(colnames)enumSimpleTable(coltypes)for r in rows(res) do enumSimpleTable(r)endres:close()db:close()env:close()
结论
environment对象(数据库驱动)
构造
env = luasql.sqlite3()
成员
close()
关闭环境。请先关闭所有connection对象。
connection对象(数据库连接)
构造
con = env:connect(sqlite3_database_file_path)
- env:环境
- sqlite3_database_file_path:数据库路径字符串
- con:数据库连接对象
成员
res = execute(sql_statement)
执行sql语句
- sql_statement:要执行的sql语句,一般用[[sql]]的字符串形式,因为sql语句中常含有引号等特殊字符
- res:
- 对于不返回记录集的sql语句(如CREATE,DELETE),res是一个数字,表示操作影响了多少记录。
- 对于返回记录集的sql语句(如SELECT),res是一个cursor对象(记录集)
setautocommit(bAuto)
- bAuto
- 设置为true时,rollback当前事务,并忽略错误
- 设置为false时,开始一个新的事务
commit()
提交事务
rollback()
回滚事务
close()
关闭数据库连接,请先关闭所有的cursor对象
rowed = getlastautoid()
获取最近一次自动生成的sqlite的rowid字段值(对应sqlite3_last_insert_rowid())
cursor对象
构造
con:execute(select_sql_statement)
成员
colnametable = getcolnames()
以table形式返回记录集中每一列的列名
coltypetable = getcoltypes()
以table形式返回记录集中每一列的类型
res = fetch([table[,modestring]])
获取下一个记录集
- table:如果指定了table,则会将数据复制到table中
- modestring:可取值”n”或”a”,默认为”n”,
- “n”:table中的key是数字
- “a”:table中的key是字符串(列名)
- res:如果未指定table,则返回记录,如果指定了table,则返回修改后的table;如果没有下一记录了,则返回nil
close()
关闭cursor对象- lua简单操作sqlite3
- lua简单操作sqlite3
- lua简单操作sqlite3
- SQLite3简单入门操作
- sqlite3简单操作
- otl 操作 sqlite3 简单例子
- ios sqlite3.0数据库的简单操作
- linux学习:sqlite3简单数据库查询操作
- python操作 sqlite3的简单方法
- 简单sqlite3数据库操作在mac终端
- cocos2dx-lua sqlite3使用
- sqlite3操作
- sqlite3操作
- sqlite3 操作
- sqlite3操作
- Iphone——使用SQLite3进行简单的数据库操作
- linux内核数据库sqlite3的移植和简单操作
- linux内核数据库sqlite3的移植和简单操作
- PHPExcel使用心得,php导出excel
- WINFORM打印表单
- Linux内存使用统计
- C++获取当前日期时间的方法
- 设置SSH服务器只采用密钥认证
- lua简单操作sqlite3
- VC小例子(整理)2
- Android日记之2012/01/08
- arch中文化
- Hello,Dream!I am On The Way!
- java基础知识记录--集合
- Interview Questions on Peoplesoft for IBM
- Dmidecode: 在 Linux 下获取硬件信息
- 先决条件