【发布时间】:2015-05-25 22:20:20
【问题描述】:
我正在尝试从电晕应用程序内部对 sqlite 数据库运行“匹配”查询。我使用 cl.exe 从源文件编译了 sqlite 数据库,并且在编译时我包含了启用 fts 功能的标志。然后我使用fts3在数据库中创建了一个虚拟表(我也单独尝试了fts4)。我可以从 sqlite 命令行实用程序运行“匹配”查询并返回正确的结果。
但是,当我从我的 corona 应用程序对同一个数据库文件尝试相同的查询时,我收到错误“没有这样的模块:fts3”(我在尝试使用 fts4 时得到“没有这样的模块:fts4”)。其他查询(不使用全文搜索)在 corona 中可以正常工作。
谁能告诉我为什么在我的 corona 应用程序中进行全文搜索时出现此错误? sqlite 文档暗示此错误意味着 sqlite 构建不包含 FTS 模块。但我认为我正确编译了它,因为我创建 FTS3 表的 SQL 语句成功(在电晕之外),并且全文查询也在电晕之外工作。
我需要在我的电晕构建设置中设置一些不同的东西吗?
我在 Windows 上使用电晕模拟器,但我也在我的设备上尝试过。
这是我设备上 adb logcat 的输出:
I/Corona (15353): Runtime error
I/Corona (15353): no such module: fts3
I/Corona (15353): stack traceback:
I/Corona (15353): [C]: ?
I/Corona (15353): [C]: in function 'nrows'
I/Corona (15353): ...t\Documents\Corona Projects\aw\scene_search.lua:162: in function 'fillMyTable'
I/Corona (15353): ...t\Documents\Corona Projects\aw\scene_search.lua:56: in function <...t\Documents\Corona Projects\aw\scene_search.lua:49>
I/Corona (15353): ?: in function <?:218>
【问题讨论】:
-
@你在 WIn64 上运行吗?你应该看看here 并将你的 sqlite3.dll (python/DLLs) 替换为 64 版本 (sqlite_x64.dll)。
-
谢谢,我用的是Win64,但我是自己编译的。
标签: sqlite lua coronasdk fts3 fts4