2017-02-16 6 views
0

Ich möchte eine Suche mit "suchen" unabhängig von Groß- und Kleinbuchstaben (Locate Fall Insensitive). wie folgt aus:Firebird suchen mit "suchen"

Form1.Table1.Locate('field', (Edit1.Text),[loCaseInsensitive]) ;

Mit Firebird, wusste ich nicht, wie es zu tun.

Delphi XE5 + Firebird 2.5 + ZEOSDBO-7.1.4.

Vielen Dank für Ihre Hilfe.

Antwort

3

Die Funktion Locate ist eine clientseitige Funktion, die in den meisten, aber nicht allen TDataSet-Nachkommenkomponenten implementiert ist.

Es ist keine "Suchfunktion", dh es hat keinen Einfluss darauf, welche Tabellenzeilen der Dataset vom Server abruft - Sie müssen dies immer noch so machen, wie Sie es normalerweise für den Dataset-Typ tun , z.B indem Sie eine SQL-Anweisung angeben und dann Open für das Dataset aufrufen.

Was macht Locate does ist einfach (und nur) den Cursor der Datenmenge auf den ersten übereinstimmenden Datensatz zu verschieben, wenn es einen gibt, andernfalls gibt es False zurück. Mit anderen Worten, wenn es erfolgreich ist, wird der erste Datensatz, der gefunden wird, der aktuelle für den Datensatz, d. H. Der Datensatz, der von db-aware-Steuerelementen angezeigt wird, die mit dem Datensatz verbunden sind.

Der Code, den Sie arbeiten zitieren sollte, vorgesehen die TDataSet-Typ Sie verwenden, unterstützt es und ist bereits mit Daten gefüllt. Natürlich wird nur True zurückgegeben, wenn es einen passenden Datensatz findet.

Um einen Datensatz für: mehr als ein Feldwert finden Sie so etwas wie

Found := Table1.Locate('field1;field2', VarArrayOf([Edit1.Text, Edit2.Text]), [loCaseInsensitive]); 
+0

Danke tun können. Wie finden Sie Datensatz mit SQL unabhängig von Groß- und Kleinbuchstaben (Locate case Insensitive). das ist mein Code: 'ZQuery1.SQL.Add ('SELECT" Field1 "FROM Tabelle, wo" Field1 "=' + QuotedStr (Trim (Edit1.Text)));' Firebird 2.5 + ZEOSDBO-7.1.4. –

+2

@Bill: Stellen Sie keine neue Frage in einem Kommentar. Stellen Sie stattdessen eine neue Frage und fragen Sie sie dort mit der Schaltfläche * Frage stellen * oben auf der Seite. Ihre Frage hier war die Verwendung von Locate, und es wurde beantwortet. Wenn Sie eine andere Frage zu SQL haben, erstellen Sie einen neuen Beitrag und fragen Sie ihn dort. –