//sqlite 库 - 存取表对象 import sqlite import console; //创建测试数据库 var db = sqlite("/tableParameter.db") if( not db.existsTable("dataTable") ) { db.exec( "CREATE TABLE dataTable( name TEXT PRIMARY KEY,info BLOB);" );//指定 name 字段为主键 } //用 REPLACE 语句添加数据,如果存在相同主键数据则覆盖 var cmd = db.prepare("REPLACE INTO [dataTable] VALUES ( @name,@info );") /* 注意在 sqlite.format() 函数中,参数如果是表通常会被格式化为 SQL 语句。 而在预处理命令中,一个参数值如果是表对象,aardio 会直接将其作为 aardio 表存储到 SQLite。 下面执行批处理命令,利用 @info 参数值存入了一个 aardio 表对象。 */ cmd.step( name = "相同名称"; info = { a = 123; b = { d = "测试"; } } ); cmd.step( name = "不同名称"; info = { a = 456; b = { d = "测试2"; } } ); /* 查询数据, prepare 的第二个参数如果是表, 表中的名值对会自动生成为 WHERE 条件语句,多个条件会使用 AND 连接。 */ cmd.prepare("SELECT * FROM [dataTable] ",{ name = "不同名称"; //可使用键值对指定查询条件 } ) //上面的代码实际会被解析为下面的代码 cmd.prepare("SELECT * FROM [dataTable] WHERE ??",{ { name = "不同名称"; //可使用键值对指定查询条件 } } ) console.log("自动生成的 SQL 语句",cmd.sql ); console.more(); var result = cmd.stepQuery(); //执行查询 console.dumpJson(result); //显示查询结果 cmd.finalize();//释放预处理语句 console.more(); //查询数据 返回所有符合条件的行记录数组 //----------------------------------------------- var dataTable = db.getTable("SELECT * FROM [dataTable] ") console.dumpJson(dataTable); //----------------------------------------------- db.exec("DROP TABLE dataTable "); //删除表 db.close(); //关闭数据库 console.pause();