现在我项目中的代码:
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")
代码没有错误,但是执行查询时内部没有记录或表。如何更改代码,以便可以打开数据库并将其放入内存中?由于我想在内存中快速访问数据,而不是一直保持与数据库的连接。
答案 0 :(得分:0)
内存数据库是仅存在于内存中的数据库。也就是说,它不会从文件中获取数据。因此,open_memory
不使用任何参数。
如果要使用文件中的数据库,则意味着访问该文件。
您不需要“保持连接到数据库”。您可以在应用程序开始时连接一次,并保持打开状态,直到应用程序终止。