![]() |
STRING SUCHE!
In DBMemofeld eine String suche mit sonderzeichen(* oder ?).
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin timer4.Enabled:=false; IBQuery4.SQL.Text:='select titel,datei from tabelle1 where memofeld like ''%'+ComboBox2.Text+'%'''; IBQuery4.Open; end; |
Re: STRING SUCHE!
:wiejetzt: ;)
|
Re: STRING SUCHE!
:warn: Nur Großbuschtaben in der Überschrift sind unerwünscht. Sofort ändern, sonst zu ;)
...:cat:... |
Re: STRING SUCHE!
In meinen Bsp. oben vergleicht er nur den Text in der ComboBox2.Text mit den Einträgen im DBMemofeld.
Er soll nun mit * suchen. Bsp. arbeits* Anzeige: arbeitsrecht arbeitsschuhe arbeitskleidung.... |
Re: STRING SUCHE!
Datenbankfelder vom Datentyp LOB (=Large Object) können nicht in einer
SQL-Anweisung mit like, =, <> abgefragt werden. Möglich, dass manche Datenbanken da eine Ausnahme machen, aber man kann sich nicht darauf verlassen. Du könntest nun die Tabelle linear durchsuchen, das Memo-Feld mit dem Muster vergleichen, die gefundenen Treffer (nur die Primärschlüssel) dir in einer Liste merken. Danach wird eine Abfrage erzeugt:
SQL-Code:
Oder du erweiterst dein Datenbankdesign so, dass eine Volltextsuche in einem Memofeld
SELECT * FROM Tabelle WHERE PrimaerSchluesselFeld in [Treffer1 , Treffer2, ...]
nicht nötig ist. Man kann z.B. zusätzl. Suchwörter in einem normalen Charfeld speichern. |
Re: STRING SUCHE!
Dafür gibt es doch CLOBs (Character Large Object), die kann man fast wie einen Varchar2 behandeln. ;)
|
Re: STRING SUCHE!
Zitat:
|
Re: STRING SUCHE!
In Interbase kann man mit "containing" Text-Blobs durchsuchen. Ist natürlich nicht indiziert.
Cu, Udontknow |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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 by Thomas Breitkreuz