2012-04-03 10 views
2

Warum, wenn ich eine Abfrage mit Volltext-Suchsyntax wie schreiben:System.Data.SQLite und FTS4

SELECT * FROM TABLENAME WHERE TABLENAME MATCH 'ColumnA:word1 OR ColumnB:word2' 

Das Abfrageergebnis zurückkehren immer 0 Zeilen?

Ich verwende VBNET und den neuesten Ado.net Anbieter von sqlite.org

Das Problem ist, wenn ich die Abfrage mit und externem Tool versuchen, es funktioniert gut (mit SQLite 3.7.9).

Irgendwelche Hinweise? Vielen Dank im Voraus

Antwort

3

Obwohl System.Data.SQLite zusammengestellt SQLITE_ENABLE_FTS3 und unterstützt FTS verwenden, wird es nicht mit SQLITE_ENABLE_FTS3_PARENTHESIS zusammengestellt, die Enhanced Query Syntax ermöglicht. Und Sie verwenden die erweiterte Abfragesyntax in Ihrer Abfrage, so dass es nicht wie erwartet funktioniert hat.

Sie müssen entweder Ihre Abfrage ändern oder einen benutzerdefinierten Build (follow build procedures) von System.Data.Sqlite mit SQLITE_ENABLE_FTS3_PARENTHESIS definieren.

+0

Danke für Ihre Antwort, aber ich kann die gemischte Assembly Version nicht bauen, ich habe Visual Studio 2008 Pro. Ich erhalte den Fehler: Fehler 9.\t fataler Fehler LNK1181: kann die Eingabedatei 'c: \ Documents.obj' nicht öffnen \t SQLite.Interop.Static.2008 \t SQLite.Interop.Static.2008 –

+0

folgen Build-Verfahren: http: // system.data.sqlite.org/index.html/doc/trunk/www/build.wiki –

+0

Danke petr !! Ich kann kompilieren, aber selbst wenn ich das Makro dadurch ändere, habe ich immer noch mis Interpretation meiner erweiterten Abfrage: Ich habe hinzugefügt der Code:

Verwandte Themen