![]() |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Der Fehler liegt dann aber nicht an diesem Code. Kannst du mal beschreiben was nicht tut?
marabu |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Ich habe in einer Tabelle fünf Spalten:
kn name vorname plz ort Dann ist ein Edit-Feld auf der Form. Ich möchte, dass alle funf Spalten auf den Inhalt dieses Edit-Feldes durchgesucht werden und die Treffer im DBGrid landen, wobei das zweite kein Problem ist. Bis jetzt, egal wie ich die WHERE-Teil aufbaue und wieviele SQL.Add() ich da einfüge, wird nur die Spalte "kn" durchgesucht, obwohl SQL-Syntax
SQL-Code:
schon richtig sein sollte. Was denn nun?
...WHERE (LOWER(kn) LIKE :suche) OR (LOWER(name) LIKE :suche) OR (LOWER(vorname) LIKE :suche)...
|
Re: Suche in der Datenban und Ausgabe im DBGrid???
Dein SELECT Statement interessiert mich weniger, zeige mal den Code, mit dem du momentan testest.
marabu |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Delphi-Quellcode:
with ADOQuery1 do
begin active := false; sql.clear; s := '%' + Edit1.Text + '%'; sql.add('SELECT * FROM KUNDEN WHERE (LOWER(kn) LIKE :suche) OR (LOWER(name) LIKE :suche)'); ParamCheck := true; Parameters.ParamByName('suche').Value := LowerCase(s); active := true; open; end; |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Da du ja alle Felder auf ein und den selben Inhalt durchsuchst und die ja vom Inhalt ziemlich verschieden sind würde ich statt LIKE mal IN nehmen.
|
Re: Suche in der Datenban und Ausgabe im DBGrid???
Zitat:
|
Re: Suche in der Datenban und Ausgabe im DBGrid???
Hi romber,
dein Code enthält nicht die Änderungen, die ich dir empfohlen habe - bist du beratungs-resistent? Durch die mehrfache Verwendung des Parameters :suche kannst du den nicht mehr über den Namen ansprechen, denn jeder Parameter wird in der parameters collection instanziiert. Deshalb mache ich das in einer Schleife. Und entscheide dich für Active True/False oder Open/Close, beides zusammen bringt nix. marabu |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Zitat:
SQL-Code:
Aber marabu hat glaube ich Recht. Setz erstmal den Vorschlag von marabu um und wenn dann noch nicht das gewünschte Ergebnis kommt versuche es mit dem IN...
...WHERE (LOWER(kn) IN :suche) OR (LOWER(name) IN :suche) OR (LOWER(vorname) IN :suche)...
|
Re: Suche in der Datenban und Ausgabe im DBGrid???
Zitat:
Ich bin nicht beratungsresistent, ich freue mich sogar sehr, wenn die erfahrene Progger mir helfen. Ich habe dein Kode getestet und es wird sogar die Spalte "kn" nicht mehr durchgesucht. Auf jeden Fall, egal was ich in den Edit1 eingeben, wird nichts gefunden. Sicher hast du irgendwo ein kleines Fehlerchen :) |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Hi Jan,
das meinst du nicht wirklich - schau nochmal in die SQL reference. Das hier wäre eine korrrekte Verwendung des IN Operators:
SQL-Code:
Und das hier wäre noch eine:
SELECT * FROM table WHERE icol IN (2,3,5,7,11,13)
SQL-Code:
Freundliche Grüße vom marabu
SELECT * FROM kinder WHERE muetter_id IN (
SELECT id FROM muetter WHERE haarfarbe = 'blond' ) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:39 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