![]() |
Datenbank: MSSQL Server • Version: 2000 • Zugriff über: ADO
Suche in der Datenban und Ausgabe im DBGrid???
Hallo!
Ich habe einen DBGrid, der über ADOTable mit der Datenbank auf dem MSSQL Server verbunden ist. Im DBGrid werden alle Spalten und alle Datensätze angezeigt. Ich möchte jetzt so eine Filter-Funktion einbauen, die alle Spalter aller Datensätze nach einem Suchbegriff durchsucht und die Treffer in demselben DBGrid anzeigt. Mit "Treffer" sind die Datensätze gemeint, in den der Suchbegriff gefunden wurde. Wie mache ich das? |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Du nimmst TADODataset und arbeitest mit Queries:
Delphi-Quellcode:
ADODataset.CommandText := 'SELECT * FROM MeineTabelle where MyFeld = :MyFeld';
ADODataset.ParamByName('MyFeld').AsString := 'xyz'; |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Danke für schnelle Antwort!
Ich habe in einem anderen Beispiel die Lösung gefunden:
Delphi-Quellcode:
Ich möchte aber nicht nur die Spalte "kn" durchsuchen, sondern auch einige anderen Spalten. Wie soll in diesem Fall meine WHERE aussehen?
procedure TForm1.Button1Click(Sender: TObject);
var s: String; begin with ADOQuery1 do begin active := false; sql.clear; s := '%' + Edit1.Text + '%'; sql.add('SELECT * FROM KUNDEN WHERE LOWER(kn) LIKE :suche'); ParamCheck := true; Parameters.ParamByName('suche').Value := LowerCase(s); active := true; open; end; end; |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Ich bin mir nicht sicher aber könnte man das dann nicht mit OR verknüpfen?
Etwa so:
SQL-Code:
SELECT * FROM KUNDEN WHERE (LOWER(kn) LIKE :suche) OR (LOWER(xy) LIKE :suche)
|
Re: Suche in der Datenban und Ausgabe im DBGrid???
Zitat:
|
Re: Suche in der Datenban und Ausgabe im DBGrid???
Hai romber,
hast Du einmal versucht für die zweite "Like-Abfrage" einen eigenen Parameter anzugeben (:suche2)? Nicht das da etwas bei der Parameter Zuweisung falsch läuft. |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Nee, geht auch nicht :(
|
Re: Suche in der Datenban und Ausgabe im DBGrid???
Hi romber,
ob es das gewünschte Ergebnis bringt, steht auf einem anderen Blatt, aber funktionieren sollte das hier:
Delphi-Quellcode:
Grüße vom marabu
procedure TForm1.Button1Click(Sender: TObject);
var s: String; i: Integer; begin with ADOQuery1 do begin s := '%' + AnsiLowercase(Edit1.Text) + '%'; sql.Clear; sql.Add('SELECT * FROM KUNDEN WHERE LOWER(kn) LIKE :suche '); sql.Add('OR LOWER(xy) LIKE :suche '); sql.Add('OR LOWER(yz) LIKE :suche '); // for i := 0 to ParamCount - 1 do // Danke Sharky für deine Korrektur for i := 0 to Parameters.Count - 1 do Parameters.Items[i].Value := s; open; end; end; |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Zitat:
|
Re: Suche in der Datenban und Ausgabe im DBGrid???
Ich weiß ja nicht was rauskommen soll aber kann es sein das LIKE vielleicht nicht das ist was du brauchst? Soweit ich weiß bringt das nämlich nur was bei minnimalen Abweichungen vom Original. Vielleicht suchst du einfach nochmal in die Richtung.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 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