我正在尝试从电晕应用程序内部对 sqlite 数据库运行“匹配”查询。我使用 cl.exe 从源文件编译了 sqlite 数据库,编译时我包含了启用 fts 功能的标志。然后我使用fts3在数据库中创建了一个虚拟表(我也单独尝试了fts4)。我能够从 sqlite 命令行实用程序运行“匹配”查询并返回正确的结果。
但是,当我从我的电晕应用程序对同一个数据库文件尝试相同的查询时,我收到错误“没有这样的模块:fts3”(我在尝试使用 fts4 时得到“没有这样的模块:fts4”)。其他查询(不使用全文搜索)在电晕中工作正常。
谁能告诉我为什么在我的电晕应用程序中进行全文搜索时出现此错误?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>