Entwickler-Ecke

Datenbanken - Query mit Table synchronisieren


colaka - Do 01.11.12 13:48
Titel: Query mit Table synchronisieren
Hallo,

ich stelle das Ergebnis einer Query-Abfrage in einem DBGrid dar und möchte beim Scrollen des DBGrids, daß der entsprechende Datensatz in der Table aktiviert wird. Im Prinzip möchte ich also die Query mit der Tabelle synchronisieren. Ich habe also in dem DataChange-Ereignis der Query das folgende eingetragen:


Delphi-Quelltext
1:
2:
3:
4:
procedure TDatenModul.DSWiedervorlageDataChange(Sender: TObject; Field: TField);
begin
    DatenModul.TKunden.FindKey([DatenModul.QueryWiedervorlageKdKzBez.AsString]);
end;


Der Primärindex von TKunden ist das Feld KdKzBez. Bei der Programmausführung erhalte ich aber die Fehlermeldung: Stack-Überlauf.

Ich wäre sehr dankbar, wenn mir hier jemand sagen könnte, wie ich es richtig machen muß.

Danke


Sinspin - Do 01.11.12 14:56

Wenn Du beim scrollen das Event der DataSource bekommst brauchst du doch nix mehr machen. Dann wird doch der Datenzeiger der Query die die Daten bereitstellt eh angepasst. Oder habe ich Dich nicht richtig verstanden?


colaka - Do 01.11.12 15:03

Hallo,
die Query wird schon angepasst, aber ich will ja die Table synchronisieren. In der Tabelle soll immer der gleiche Datensatz aktiv sein, der in der Query markiert ist.


bummi - Do 01.11.12 17:01

DatenModul.TKunden ist trotz den Names eine Instanz?
es gibt kein Event und keine Verdrahtung die bei Änderung von TKunden auf Dein Query Einfluss nimmt?
Ansonsten mal einen Breakpoint in die Routine setzen und mit F7/F8 mitsteppen.


colaka - Do 01.11.12 19:28

Hallo,

ja, es gab tatsächlich eine Rückkopplung. Deine Frage hat mich auf die richtige Spur gebracht.

Vielen Dank