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語法,但仍然沒有任何好處。
所以,如果你有任何解決方案,請幫助。
感謝:
然後你就可以按如下方式使用它。這解決了我的問題。你是天使 –