![]() |
Datenbank: MS SQL • Version: 12 • Zugriff über: ADO
Probleme bei der Volltextsuche
Wenn ich über 1. Teil der folgenden Suchroutine versuche eine Volltextsuche zu machen, bekomme ich beim ersten Versuch 0 Bücher angezeigt, wenn ich vorher den 2. Teil benutze dann funtioniert danach auch auch der erste Teil.
Kann mir jemand dabei helfen? Gruß Flash
Delphi-Quellcode:
procedure TFRM_Main.But_SucheClick(Sender: TObject); begin if cb_Suche.ItemIndex = 0 then Begin DM_Buecher.ADQ_VSuche.SQL.Text := 'Select Buch_ID as ID, Titel, ErscheinungsJahr as Jahr, Orginaltitel, Reihe, Auflage, AnzahlSeiten as Seitenzahl, Name as Verlag, Kategorie, Art as Einbandart from SichtBücher where contains(*, :suchtext)'; DM_Buecher.ADQ_VSuche.Parameters.ParamByName('suchtext').Value := Format('"*%s*"', [EDT_Suchen.Text]); DM_Buecher.ADQ_VSuche.Active := true; LBL_Ergebnis.Caption := IntToSTR(DM_Buecher.ADQ_VSuche.RecordCount) + ' Buchtitel gefunden'; DBG_Suche.Visible := true; DBN_Suche.Visible := true; DBG_Suche_Autor.Visible := true End else begin DM_Buecher.ADQ_VSuche.SQL.Clear; DM_Buecher.ADQ_VSuche.SQL.add ('select distinct B.Buch_ID, B.Titel, B.Erscheinungsjahr, B.Auflage, B.Anzahlseiten, V.Name, B.ISBN_NR, E.Art, K.Kategorie from Autor A, BuchAutor BA, Bücher B, Verlag V, Einband E, Kategorie K'); DM_Buecher.ADQ_VSuche.SQL.Add('where A.Autor_ID = BA.Autor_ID and BA.Buch_ID = B.Buch_ID and B.Verlags_ID = V.Verlags_ID and B.Einband_ID = E.Einband_ID and B.Kategorie_ID = K.Kategorie_ID'); DM_Buecher.ADQ_VSuche.SQL.Add('and A.Nachname like'); DM_Buecher.ADQ_VSuche.SQL.Add('''%' + Edt_suchen.Text +'%'''); DM_Buecher.ADQ_VSuche.open; LBL_Ergebnis.Caption := IntToSTR(DM_Buecher.ADQ_VSuche.RecordCount) + ' Buchtitel gefunden'; DBG_Suche.Visible := true; DBN_Suche.Visible := true; DBG_Suche_Autor.Visible := true End; |
AW: Probleme bei der Volltextsuche
Ich würde empfehlen, für jede Art der Suche eine eigene Query im Datenmodul anzulegen.
Dann kannst du die Abfrage schon im Objektinspektor eintragen und vor allem darauf achten, dass die Parameter den richtigen Typ und Länge bekommen. (Manchmal gibt es hier Probleme und man muss von Hand im Objektinspektor nachhelfen) |
AW: Probleme bei der Volltextsuche
"*suchtext*" geht nicht. Du kannst in der CONTAINS-Klausel nur nach Wörtern oder Wortanfängen suchen. Also "suchtext" oder "suchtext*"
Ich würde dir auch eher zu CONTAINSTABLE oder FREETEXTTABLE raten. Der Query-Optimizer ignoriert manchmal die Suche über den VTI und macht aus der Query dann eine lahme Krücke. |
AW: Probleme bei der Volltextsuche
Fehler gefunden, der itemindex von der Combobox war falsch.
Gruß Flash |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz