![]() |
Datenbank: MySQL • Version: 5 • Zugriff über: Zeos
TDBGrid Datensatzzeiger auf Tabelle
Hallo ,
bin ein Newbie in Sachen Delphi, habe ein DBGrid und möchte nach einem DblClick auf den Datensatz im Formular zeigen, habe das in der Vergangenheit mit procedure TForm5.DBGrid1DblClick(Sender: TObject); begin Table1.FindKey([TDBGrid(Sender).Datasource.Dataset.FieldbyName('Lf dnr').asString]); end; mit Zufriedenheit aller erledigt. Nun mit der Umstellung auf MySql Tabellen, die ich mit einem Index versehen hab, funktioniert das ganz nicht 'Findkey' 'undefinierter Bezeichner'. Wo liegt der Hammel im Graben ?? Mit besten Dank im Vorraus |
AW: TDBGrid Datensatzzeiger auf Tabelle
Ich verstehe nicht ganz, wozu Du FindKey brauchst. Nach einem Klick auf eine Zeile im DBGrid positioniert die Datenmenge doch automatisch auf den entsprechenden Datensatz, oder verstehe ich Dich falsch?
|
AW: TDBGrid Datensatzzeiger auf Tabelle
Die Ersatzfunktion zum Suchen eines Datensatzes ist [TDataset].Locate().
Beispiel:
Delphi-Quellcode:
Allerdings kann Locate nur den 1. Datensatz finden und ist ausserdem relativ langsam.
if MySqlQuery1.Locate('ArtikelNr', '553311', []) then
ShowMessage('Artikel 553311 gefunden'); Für kleine Datenmengen bis ~500 Datensätzen kann man es aber benützen. |
AW: TDBGrid Datensatzzeiger auf Tabelle
Danke für die so rasche Antwort,
habe leider Vergessen , dass ich die Ergebinsmenge aus einer Query hole um Sie dann zu bearbeiten. die Tabelle hat einen Eintrag von ca. 5000 Datensätze und Tendenz zunehmend, ist dann Locate zu empfehlen ? Nochmals Danke |
AW: TDBGrid Datensatzzeiger auf Tabelle
Zitat:
Der saubere (und schnellere) Weg geht so, dass man eine eigene Query benützt:
SQL-Code:
den Parameter :Lfdnr befüllt und diese Query jedes Mal neu öffnet.
SELECT * FROM Untertabelle WHERE Lfdnr=:Lfdnr
Das Befüllen des Parameters kannst du dir sparen, wenn du diese Abfrage über das Property DataSource mit der Haupttabelle verknüpfst. Ich hoffe auch, du hast keine Leerzeichen in deinen Feldnamen (so wie in deinem Beispiel), denn das macht dir nur das Leben schwer. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 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