我项目中的代码现在:
local lsqlite3 = require "lsqlite3complete"
self.db_conn = lsqlite3.open("cost.db")
function showrow(udata,cols,values,names)
assert(udata=='test_udata')
for i=1,cols do
print('',names[i],values[i])
end
return 0
end
self.db_conn:exec('select * from cost',showrow,'test_udata')
从上面的代码中选择成本记录没有问题,但如果我改变如下并尝试在内存中打开它:
self.db_conn = lsqlite3.open_memory("cost.db")
代码没有错误,但在我执行查询时没有记录或表。如何更改我的代码以便我可以打开并将数据库放入内存?因为我想在内存中快速访问我的数据而不是连接到数据库。
内存数据库是仅存在于内存中的数据库。也就是说,它不会从文件中获取数据。因此,open_memory
不采取任何参数。
如果要使用存在于文件中的数据库,则表示访问该文件。
您不应该“继续连接到数据库”。您在应用程序开始时连接到它一次并保持打开状态,直到您的应用程序终止。