SQLite 模块
CBrother在1.1.0版本提供了一个SQLite扩展,它可以帮助你操作SQLite数据库。
SQLite用法
import CBSQLite.code
function main(parm)
{
var sqlite = new SQLite(GetRoot() + "aaa.db");
if(!sqlite.connect())
{
print "sqlite connect err!!";
return;
}
print GetRoot() + "aaa.db";
var res = sqlite.upDate("CREATE TABLE IF NOT EXISTS test (intv INTEGER,strv VARCHAR(100) NOT NULL, floatv FLOAT)");
if(!res)
{
print "update err " + sqlite.getErr();
}
var res = sqlite.upDate("INSERT INTO test (`strv`, `intv`, `floatv`) VALUES ('333', 222, 10.12)");
if(!res)
{
print "update err " + sqlite.getErr();
}
var res = sqlite.query("select * from test");
if(!res)
{
print "query err " + sqlite.getErr();
return;
}
while(sqlite.next())
{
var strv = sqlite.getString(0);
var intv = sqlite.getInt(1);
var floatv = sqlite.getInt(2);
print "sqlite data: " + strv + " " + intv + " " + floatv;
var strv2 = sqlite.getString("strv");
var intv2 = sqlite.getInt("intv");
var floatv2 = sqlite.getInt("floatv");
print "2 sqlite data: " + strv2 + " " + intv2 + " " + floatv2;
var strv3 = sqlite.getValue(0);
var intv3 = sqlite.getValue("intv");
var floatv3 = sqlite.getValue("floatv");
print "3 sqlite type: " + CBType(strv2) + " " + CBType(intv2) + " " + CBType(floatv2);
print "3 sqlite data: " + strv2 + " " + intv2 + " " + floatv2;
}
sqlite.freeQuery();
sqlite.closeConnect();
}
结果:
sqlite data: 222 333 10
2 sqlite data: 333 222 10
3 sqlite type: string int int
3 sqlite data: 333 222 10
sqlite data: 222 333 10
2 sqlite data: 333 222 10
3 sqlite type: string int int
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() |