Hallo Ihr da draussen,
ich stehe vor einer ungelösten Aufgabe (Probleme gibt es ja nicht mehr) über die bestimmt schon diskutiert wurde, aber ich habe jetzt schon zwei Stunden gesucht und keine richtige Antwort gefunden. Also: Ich benötige in einer Access Datenbank (Zugriff über ADO - TADOConnection + TADOTable) zwei Tabellen, die über einen eindeutigen Key miteinander verbunden sind. Der Einfachheit halber habe ich die Schlüsselfelder als Autoincrement angelegt. Nun möchte ich in einer procedure, die das Anlegen der Datensätze übernimmt, den Key als Rückgabewert verwenden.
function TDM_Main.CreateData: Longint;<br>
begin<br>
with Tabelle do<br>
begin<br>
Append;<br>
... Daten setzen ...<br>
Post;<br>
Result := KeyFeld.Value; <br>
end;<br>
<br>
Der Rückgabewert ist aber in jedem Falle 0. Erst wenn ich hinter das Post ein Requery setze, dann wird ein realer Wert zurückgeliefert. Das funzt aber nur beim ersten Datensatz, da Requery den Datensatzzeiger auf den ersten Datensatz setzt und ich will ja den Key verwenden, um die Daten wiederzufinden (habe also kein weiteres eindeutiges Kriterium).
Gruß Falk
ich stehe vor einer ungelösten Aufgabe (Probleme gibt es ja nicht mehr) über die bestimmt schon diskutiert wurde, aber ich habe jetzt schon zwei Stunden gesucht und keine richtige Antwort gefunden. Also: Ich benötige in einer Access Datenbank (Zugriff über ADO - TADOConnection + TADOTable) zwei Tabellen, die über einen eindeutigen Key miteinander verbunden sind. Der Einfachheit halber habe ich die Schlüsselfelder als Autoincrement angelegt. Nun möchte ich in einer procedure, die das Anlegen der Datensätze übernimmt, den Key als Rückgabewert verwenden.
function TDM_Main.CreateData: Longint;<br>
begin<br>
with Tabelle do<br>
begin<br>
Append;<br>
... Daten setzen ...<br>
Post;<br>
Result := KeyFeld.Value; <br>
end;<br>
<br>
Der Rückgabewert ist aber in jedem Falle 0. Erst wenn ich hinter das Post ein Requery setze, dann wird ein realer Wert zurückgeliefert. Das funzt aber nur beim ersten Datensatz, da Requery den Datensatzzeiger auf den ersten Datensatz setzt und ich will ja den Key verwenden, um die Daten wiederzufinden (habe also kein weiteres eindeutiges Kriterium).
Gruß Falk
Comment