0
我在电子中使用我自己的sqlite3.dll。所以我需要用'ffi'注册sqlite3的所有函数,我需要使用它。到现在为止,它工作得很好。防爆为sqlite3_exec,我在FFI如下无法在电子应用程序的sqlite3中创建虚拟表格
var lib = ffi.library('sqlite3',sqlite3_exec': ['int', [sqlite3Ptr, 'string', 'pointer', 'pointer', stringPtr]],)
注册这一点,在使用我用它如下:
var res = lib.sqlite3_exec(dbHandle, query, null, null, null);
它可以完美运行。
现在我需要创建虚拟表。所以当我尝试使用相同的代码创建虚拟表时,出现错误。做了一些研究,并且知道我需要用ffi注册一个函数,这将允许我创建虚拟表。
功能如下:
'sqlite3_create_module': ['int',[sqlite3Ptr, 'string', 'pointer', 'pointer']]
这基本上是C语法,我需要通过以下模块的地址作为所述第三参数
static sqlite3_module module = {
.iVersion = 1,
.xCreate = test_CreateConnect,
.xConnect = test_CreateConnect,
.xBestIndex = test_BestIndex,
.xDisconnect = test_DisconnectDestroy,
.xDestroy = test_DisconnectDestroy,
.xOpen = test_Open,
.xClose = test_Close,
.xFilter = test_Filter,
.xNext = test_Next,
.xEof = test_Eof,
.xColumn = test_Column,
.xRowid = test_Rowid,
.xRename = test_Rename,
};它在C语法中,我试图尽可能地将其更改为JS语法,但仍然没有任何好处。
所以,如果你有任何解决方案,请帮助。
感谢:
然后你就可以按如下方式使用它。这解决了我的问题。你是天使 –