【问题标题】:Getting no such module: fts error in corona with sqlite没有这样的模块:使用 sqlite 的电晕中的 fts 错误
【发布时间】: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


【解决方案1】:

我还在 corona 论坛上发布了这个问题,corona 工作人员确认他们使用 Android 的标准版本的 sqlite,它不包括对全文搜索的支持。 iOS 上的标准构建确实包括对 fts 的支持,因此它确实适用于 iOS。
看: http://forums.coronalabs.com/topic/55683-is-coronas-sqlite-compiled-with-fts3-full-text-search-enabled/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-04
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 2017-02-09
    • 2010-12-29
    相关资源
    最近更新 更多