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

问题描述 投票:0回答:1

我项目中的代码现在:

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

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

sqlite lua
1个回答
0
投票

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

如果要使用存在于文件中的数据库,则表示访问该文件。

您不应该“继续连接到数据库”。您在应用程序开始时连接到它一次并保持打开状态,直到您的应用程序终止。

© www.soinside.com 2019 - 2024. All rights reserved.