2015-03-23 2 views
0

Я пытаюсь запустить запрос соответствия для базы данных sqlite изнутри приложения-короны. Я скомпилировал базу данных sqlite из исходных файлов, используя cl.exe, и когда я скомпилировал, я включил флаги, чтобы включить функции fts. Затем я создал виртуальную таблицу в базе данных с помощью fts3 (я также пробовал отдельно с fts4). Я могу запустить запрос «match» из утилиты командной строки sqlite и возвращает правильные результаты.Получение такого модуля: ошибка fts в corona с sqlite

Однако, когда я пытаюсь выполнить тот же запрос с одним и тем же файлом базы данных из моего приложения corona, я получаю сообщение об ошибке «no такой модуль: fts3» (я получил «нет такого модуля: fts4», когда пытался с fts4). Другие запросы (не используя полнотекстовый поиск) отлично работают в пределах короны.

Может ли кто-нибудь сказать мне, почему я получаю эту ошибку при полных текстовых поисках в моем приложении для короны? Документация sqlite подразумевает, что эта ошибка означает, что сборка sqlite не включает модули FTS. Но я думаю, что я скомпилировал его должным образом, потому что мои SQL-инструкции для создания таблицы FTS3 преуспели (вне короны), а полный текстовый запрос также работает за пределами короны.

Нужно ли мне устанавливать что-то по-другому в настройках настройки короны или что-то в этом роде?

Я использую симулятор короны на 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> 
+0

@ Вы работаете на WIn64? вы должны посмотреть [здесь] (https://www.autoitscript.com/autoit3/files/beta/autoit/archive/sqlite/) и заменить ваш sqlite3.dll (python/DLL) на 64-разрядную версию (sqlite_x64. DLL). – mannaia

+0

Спасибо, я использую Win64, но я сам его составлял. – user2026318

ответ

0

Я также разместил этот вопрос на коронных форумах и сотрудники коронного подтвердили, что они используют стандартную сборку SQLite для Android и не включают поддержку полнотекстового поиска. Стандартная сборка на iOS включает поддержку fts, поэтому она работает для iOS.
http://forums.coronalabs.com/topic/55683-is-coronas-sqlite-compiled-with-fts3-full-text-search-enabled/