Hallo Snyderburn,
deine Aussage:
Zitat:
Das ist dann ja schön zu hören, dass es daran liegt, dass der Fehler was mit
SQL zu tun hat. Aber, das bringt mir ja auch nicht viel weiter. Den Fehler habe ich deswegen noch nicht beseitigt!!
hört sich ja ziemlich zickig an. Man hat ja fast das Gefühl, man müsste sich entschuldigen helfen zu wollen.
Ich gehe mal davon aus, dass da nur der Frust durchdringt, dass du nicht weiterkommst und will mal ein paar Kommentare zu deinem Code abegeben:
Delphi-Quellcode:
repeat
if idzumbearbeiten = dm1.T_anschrift.fieldbyname('ID_anschrift').asinteger then
begin
dm1.T_anschrift.edit;
dm1.T_Zugehoerigkeit.edit;
.... // Hier stehen noch mehr Tabellen drin.
dm1.t_extern_freigabe.edit;
Was mir hier komisch vorkommt ist, dass du hier viele Tabellen in den Schreibmode versetzt!? Üblicherweise setzt man nur die Datei in den Schrebmodus, in der man den aktuellen Datensatz editieren möchte.
Delphi-Quellcode:
dm1.q_Zugehoerigkeit.RequestLive := true;
dm1.DS_Zugehoerigkeit.DataSet := dm1.q_Zugehoerigkeit;
dm1.q_Zugehoerigkeit.Close;
Wenn q_Zugehoerigkeit noch geöffnet ist, sollte eine Zuweisung an RequestLive entweder zu einer
exception führen oder ignoriert werden. Ich würde erst das Close schreiben und dann die Eigenschaften ändern.[/delphi]
Delphi-Quellcode:
...
end
else
begin
dm1.T_anschrift.Next;
bearbeitenzaehler := bearbeitenzaehler + 1;
end;
until (idzumbearbeiten = bearbeitenzaehler) or (dm1.T_Anschrift.Eof);
Wenn der akzuelle Datensatz die Bedingung nicht erfüllt, wird der Datensatzzeiger ja durch den Aufruf von Next weitergeschoben. Dann setzt du aber alle Tabellen erneut in den Edit-Modus, aber in diesem sind sie ja noch!?