android– 使用MATCH的SQLite查询错误

android– 使用MATCH的SQLite查询错误,第1张

概述我正在使用以下查询在SQLite中执行搜索.publicMatrixCursorlistViewCursor(Stringquery){open();Cursordcursor=null;MatrixCursorcursor=newMatrixCursor(listviewColumns);Object[]listviewarray=null;String[]selectionArgs=newSt

我正在使用以下查询在sqlite中执行搜索.

public MatrixCursor ListVIEwCursor(String query) {    open();    Cursor dcursor = null;    MatrixCursor cursor = new MatrixCursor(ListvIEwColumns);    Object[] ListvIEwarray = null;    String[] selectionArgs = new String[] { query };    System.out.println("Selectionarg = "+selectionArgs.toString());    if (query == null) {        try {// this works            dcursor = database.query(LA_DATABASE_table, ListvIEwColumns,                    null, null, null, null, LA_TEST_name);        } catch (Exception e) {            e.printstacktrace();        }    } else        try {// this don't work!!!            dcursor = database.query(LA_DATABASE_table, ListvIEwColumns,                    LA_TEST_name + " MATCH ?", new String[] { query }, null, null, null);        } catch (Exception e) {            e.printstacktrace();        }    System.out.println("dcursor count = "+dcursor.getCount());    ListvIEwarray = new Object[dcursor.getColumnCount()];    if (dcursor.movetoFirst()) {        do {            for (int i = 0; i < dcursor.getColumnCount(); i++) {                ListvIEwarray[i] = dcursor.getString(i);            }            cursor.addRow(ListvIEwarray);            System.out.println(dcursor.getString(1));        } while (dcursor.movetoNext());    } else        return null;    close();    return cursor;}

但是我收到以下错误.

0

1-01 04:36:27.376: I/sqliteDatabaseCpp(3171): sqlite returned: error code = 1, msg = statement aborts at 7: [SELECT _ID, suggest_text_1, test_value_1, test_value_2, test_type_1 FROM la_table WHERE suggest_text_1 MATCH ?] unable to use function MATCH in the requested context, db=/data/data/com.assistant.lab.royale/databases/la_db01-01 04:36:27.376: E/sqlitequery(3171): exception: sql logic error or missing database; query: SELECT _ID, suggest_text_1, test_value_1, test_value_2, test_type_1 FROM la_table WHERE suggest_text_1 MATCH ?01-01 04:36:27.376: D/AndroIDRuntime(3171): Shutting down VM01-01 04:36:27.376: W/dalvikvm(3171): threadID=1: thread exiting with uncaught exception (group=0x409c01f8)01-01 04:36:27.465: E/AndroIDRuntime(3171): FATAL EXCEPTION: main01-01 04:36:27.465: E/AndroIDRuntime(3171): androID.database.sqlite.sqliteException: sql logic error or missing database01-01 04:36:27.465: E/AndroIDRuntime(3171):     at androID.database.sqlite.sqlitequery.nativeFillWindow(Native Method)01-01 04:36:27.465: E/AndroIDRuntime(3171):     at androID.database.sqlite.sqlitequery.fillWindow(sqlitequery.java:86)01-01 04:36:27.465: E/AndroIDRuntime(3171):     at androID.database.sqlite.sqliteCursor.fillWindow(sqliteCursor.java:164)01-01 04:36:27.465: E/AndroIDRuntime(3171):     at androID.database.sqlite.sqliteCursor.getCount(sqliteCursor.java:156)01-01 04:36:27.465: E/AndroIDRuntime(3171):     at com.assistant.lab.royale.DataSource.ListVIEwCursor(DataSource.java:52)01-01 04:36:27.465: E/AndroIDRuntime(3171):     at com.assistant.lab.royale.LabAssistant.filterListVIEw(LabAssistant.java:32)01-01 04:36:27.465: E/AndroIDRuntime(3171):     at com.assistant.lab.royale.LabAssistant.onqueryTextChange(LabAssistant.java:54)01-01 04:36:27.465: E/AndroIDRuntime(3171):     at androID.Widget.SearchVIEw.onTextChanged(SearchVIEw.java:1091)01-01 04:36:27.465: E/AndroIDRuntime(3171):     at androID.Widget.SearchVIEw.access00(SearchVIEw.java:90)01-01 04:36:27.465: E/AndroIDRuntime(3171):     at androID.Widget.SearchVIEw.onTextChanged(SearchVIEw.java:1548)01-01 04:36:27.465: E/AndroIDRuntime(3171):     at androID.Widget.TextVIEw.sendOnTextChanged(TextVIEw.java:7634)

为什么会这样呢?

编辑:

我使用dcursor = database.query修复它(LA_DATABASE_table,ListvIEwColumns,LA_TEST_name“liKE’%”查询“%’”,null,null,null,null);但我想知道为什么上面的代码不起作用.似乎 ?没有得到适当的替换.

解决方法:

请参阅此处http://sqlite.org/fts3.html的FTS3和FTS4简介

并确保您创建了这样的虚拟表

 CREATE VIRTUAL table enrondata1 USING fts3(content TEXT);

这不是一般的

CREATE table enrondata2(content TEXT);
总结

以上是内存溢出为你收集整理的android – 使用MATCH的SQLite查询错误全部内容,希望文章能够帮你解决android – 使用MATCH的SQLite查询错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1105739.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存