使用Lua打开内存中的现有SQLite数据库

时间:2018-09-05 10:08:03

标签: sqlite lua

现在我项目中的代码:

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")

代码没有错误,但是执行查询时内部没有记录或表。如何更改代码,以便可以打开数据库并将其放入内存中?由于我想在内存中快速访问数据,而不是一直保持与数据库的连接。

1 个答案:

答案 0 :(得分:0)

内存数据库是仅存在于内存中的数据库。也就是说,它不会从文件中获取数据。因此,open_memory不使用任何参数。

如果要使用文件中的数据库,则意味着访问该文件。

您不需要“保持连接到数据库”。您可以在应用程序开始时连接一次,并保持打开状态,直到应用程序终止。