![]() |
Suchergebnis aus DB ausgeben - Datensatz wählen - Wie?
Hallo zusammen!
Ich suche ein Beispiel (Code-Schnipsel, Tuturial), wie man folgendes realisieren könnte: Ich möchte über ein Edit etwas einlesen. Damit soll in der Tabelle gesucht werden und alle passenden Datensetze in ein Grid ausgegeben werden. Dann soll man eine Zeile markieren können. Klickt man dann auf einen Button, soll der entsprechende Datensatz übernommen werden. Das dürfte doch eigentlich möglich sein. Leider bekomme ich es nicht hin... Habt ihr vielleicht einen Vorschlag bzw. einen Hinweis auf eine gute Quelle...? |
Re: Suchergebnis aus DB ausgeben - Datensatz wählen - Wie?
zuerst mal zur suche:
ins keypress ereigniss eines Edit Feldes:
Delphi-Quellcode:
Das Query muß mit dem DBGrid als Datasource verbunden sein.
procedure TForm1.Edt_FamNameKeyPress(Sender: TObject; var Key: Char);
var temp : string; var pruefEingabe: integer; begin pruefEingabe:=ord(key); if pruefEingabe=13 then //Enter-Taste gedrückt?? begin with query do begin sql.clear; sql.add('Select * from Table where Feld= ' + quotesdstr(edit_Feld.text + '%')); open; end; end; end; Zitat:
Options --> dgrowselect = true !!! Zitat:
Delphi-Quellcode:
EditFeld2.text:= Query.FieldByName ('Feld').asString;
|
Re: Suchergebnis aus DB ausgeben - Datensatz wählen - Wie?
Danke für deine Schnelle Antwort!
Doch da hab ich noch Probleme: Du sagts, dass das DBGrid mit dem Query verbunden werden muss. Das geht doch aber gar nicht direkt. DataSoure verlangt doch ein TDataSource! So hab ich noch ein TDatasource eingefügt. Und dort als DataSet den Query eingefügt. Doch jetzt ist mein Problem: Query verlangt einen DataBaseNamen. Was muss darein? Ich verwende keinen Alias, sondern nur Tabellen mit relativen Pfad... |
Re: Suchergebnis aus DB ausgeben - Datensatz wählen - Wie?
Datasource gehört natürlich in DBGrid eingefügt und nicht ein Query hast recht :-D
Welche DB verwendest den :?: Wie verbindest du dich zur DB :?: Ich hab bis dato nur ein bischen mit MySql und Firebird gespielt. Hier mal ein Beispiel für eine Verbindung zu MySql mit den Zeos-Komponenten:
Delphi-Quellcode:
with ZConnection1 do
begin HostName:='90.0.0.5'; User:='root' Protocol:='mysql-4.1'; Port:=3306; Database:='nachrichten'; Password:= edt_Passwort.text; Connected:=true; end; Zitat:
|
Re: Suchergebnis aus DB ausgeben - Datensatz wählen - Wie?
Zitat:
In der SQL-Anfage gibt man dann einfach den relativen Pfad zur Tabelle an. Ich verwende eine Delphi-Datenbank Paradox 7 für mein Projekt. Was jedoch aus deinem Beispiel nicht klappt, ist in dem SQL-Text folgendes:
SQL-Code:
Lasse ich dies weg, funktioniert die Abfrage. Jedoch muss ich dann ja immer den kompletten Suchbegriff eingeben. Das % steht ja bei SQL für fehlende Zeichen...
('Select * from Table where Feld= ' + quotesdstr(edit_Feld.text [b]+ '%'[/b]))
Müsste man nicht eigentlich dann schreiben: ...WHERE Feld LIKE 'string%' Jedoch funktioniert das bei mir auch nicht. Kenne das auch nur von MySQL. Kann natürlich sein, dass dieser Paradox-Interpreter das noch nicht kennt. Aber wie lösst man dann so eine ungenaue Suche? |
Re: Suchergebnis aus DB ausgeben - Datensatz wählen - Wie?
Die Lösung:
Delphi-Quellcode:
procedure btnSuchenClick(Sender: TObject);
var s: String; begin with KundenQuery do begin active := false; sql.clear; s := edSuche.Text + '%'; sql.add('SELECT Name, Vorname, PLZ, Ort, Strasse, Hausnummer as HNr FROM daten\kunden.db WHERE LOWER(Name) LIKE :suche'); ParamCheck := true; ParamByName ('suche').AsString := LowerCase(s); active := true; open; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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