Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Probleme bei der Volltextsuche (https://www.delphipraxis.net/173358-probleme-bei-der-volltextsuche.html)

Flash68 19. Feb 2013 15:57

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;

sx2008 19. Feb 2013 16:05

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)

Furtbichler 19. Feb 2013 18:21

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.

Flash68 20. Feb 2013 12:30

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:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz