AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TDBGrid Datensatzzeiger auf Tabelle
Thema durchsuchen
Ansicht
Themen-Optionen

TDBGrid Datensatzzeiger auf Tabelle

Ein Thema von Hermelin007 · begonnen am 19. Mai 2011 · letzter Beitrag vom 19. Mai 2011
Antwort Antwort
Hermelin007

Registriert seit: 14. Sep 2004
Ort: Kleve
2 Beiträge
 
#1

TDBGrid Datensatzzeiger auf Tabelle

  Alt 19. Mai 2011, 16:09
Datenbank: MySQL • Version: 5 • Zugriff über: Zeos
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: TDBGrid Datensatzzeiger auf Tabelle

  Alt 19. Mai 2011, 16:16
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?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

AW: TDBGrid Datensatzzeiger auf Tabelle

  Alt 19. Mai 2011, 16:24
Die Ersatzfunktion zum Suchen eines Datensatzes ist [TDataset].Locate().
Beispiel:
Delphi-Quellcode:
if MySqlQuery1.Locate('ArtikelNr', '553311', []) then
  ShowMessage('Artikel 553311 gefunden');
Allerdings kann Locate nur den 1. Datensatz finden und ist ausserdem relativ langsam.
Für kleine Datenmengen bis ~500 Datensätzen kann man es aber benützen.
Andreas
  Mit Zitat antworten Zitat
Hermelin007

Registriert seit: 14. Sep 2004
Ort: Kleve
2 Beiträge
 
#4

AW: TDBGrid Datensatzzeiger auf Tabelle

  Alt 19. Mai 2011, 16:36
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
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

AW: TDBGrid Datensatzzeiger auf Tabelle

  Alt 19. Mai 2011, 17:20
die Tabelle hat einen Eintrag von ca. 5000 Datensätze und Tendenz zunehmend, ist dann Locate zu empfehlen ?
Ich würde das einfach mal ausprobieren.
Der saubere (und schnellere) Weg geht so, dass man eine eigene Query benützt:
SELECT * FROM Untertabelle WHERE Lfdnr=:Lfdnr den Parameter :Lfdnr befüllt und diese Query jedes Mal neu öffnet.

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.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz