Thema: Delphi ADO Guru gesucht

Einzelnen Beitrag anzeigen

Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#18

AW: ADO Guru gesucht

  Alt 13. Mär 2013, 17:27
Hallo...
Zitat:
Ich würde es mal mit der Eigenschaft 'AutoGenerateValue' des persistenten Feldes versuchen. Für das Identity-Feld sollte dieser Wert auf 'arAutoInc' stehen (leider macht das ADO bzw. Delphi nicht von alleine, wenn man die Felder einliest).
...führte nur halb zum Teilziel. AutoGenerateValue funktioniert nur mit persistenten Feldern und kann nicht zur Laufzeit gesetzt werden. TField.FieldType hat auch ftAutoInc. Den dann auf das ID Feld gesetzt und es sind die ID´s nach dem Post in der Tabelle

Soweit so gut...
Delphi-Quellcode:
Table.Append;
Table.Post; // um die ID zu kriegen ...hier ist die ID auch nun da
Table.Edit;
Table... füllen (außer ID logischerweise)
Table.Post; // --> Fehler: "Der Schlüsselwert für diese Zeile wurde in der Datenquelle geändert oder gelöscht. Die lokale Zeile ist nun gelöscht "
...Die ID ist vor dem Post exakt identisch wie vor dem Edit. Es werden nur andere Felder befüllt.

Ein Workaround der durchläuft:
Delphi-Quellcode:
Table.Append;
Table.Post; // um die ID zu kriegen ...hier ist die ID auch nun da

LastID:= Table.FieldByName('ID').AsInteger; // ID merken
Table.Close;
Table.Open;
Table.Locate('ID',LastID,[]);

Table.Edit;
Table... füllen / ändern (außer ID logischerweise)
Table.Post;
Wenn das mit dem AutoInc zu tun hat futtere ich nen Besen.
Verzweiflung, weil ich mich quälen muß.

Zitat:
Irgendwie ist mein Beitrag noch nicht richtig angekommen.
Zitat:
Tja, meiner auch nicht.
... meint ihr ich ignoriere Euch ? Im Gegenteil.

Die Frage ist doch, warum ADO so mit den AutoInc umgeht und andere Zugriffskomponenten das anders handlen. Und ein Edit + Post ist ja das normalste der Welt... nur bei ADO nicht.

Nochmal:
Ich kann weder auf Querys ausweichen noch sonst irgendwas. Ich muß mit dem Append, Post, Edit leben ! Wenn es nach mir ging wäre ADO schon von Anfang an weg gewesen. Das ADO seine Eigenheiten hat ist ja hinlänglich bekannt.

Danke an alle die sich einen Kopf machen.

Geändert von haentschman (13. Mär 2013 um 17:29 Uhr)
  Mit Zitat antworten Zitat