![]() |
Datenbank: Access, MS-SQL • Zugriff über: Jet-Engine, ODBC
Nach Insert AutoInc-Wert lesen
Hallo, Delphi-Praktiker,
ich schreibe Datensätze in eine Tabelle, die ein AutoInc-Feld als Primary-Key enthält. Nach dem Schreiben eines Satzes möchte ich den dabei erzeugten PK bekommen. Frage: Muß ich dazu den Satz wieder lesen (über einen anderen eindeutigen Schlüssel) oder gibt es weniger (zeit-) aufwendige Möglichkeiten ? Man könnte ja z.B. nach max(PK) suchen, aber durch einen dummen Zufall schreiben viellecht zwei Anwendungen praktisch gleichzeitig ... DB: zur Zeit Access (Jet-Engine), soll aber auch mit MS-SQL, MySQL und Oracle über ODBC funktionieren. Beste Grüße Klaus-Peter |
Re: Nach Insert AutoInc-Wert lesen
Bei Oracle ist das kein Problem, da hier Sequenzen unterstützt werden, für MSSQL gibt es hier im Forum eine Lösung, die diesen Mechanismus nachbildet.
|
Re: Nach Insert AutoInc-Wert lesen
Du kannst nach dem Posten ein schlichtes
SQL-Code:
aufrufen, um den letzten, für deine Transaktion gültigen, AutoInc Wert auszulesen.
Select @@identity
|
Re: Nach Insert AutoInc-Wert lesen
Gibts bei den Steuerungskomponenten nicht eine LastAutoIncVal-Eigenschaft? Zumindest bei TQuery und seinen Nachfahren.
|
Re: Nach Insert AutoInc-Wert lesen
Wenn Du mit ADO auf MSSQL zugreifst, dann macht das die TADOTable nach einem .Append / .Post automatisch. Der Feldtyp ist 'TAutoIncValue' und die Eigenschaft, die das steuert, ist ... warte ...*nachguck* ... "AutoGenerateValue". Allerdings ist die Hilfestellung irreführend, denn bei meinem MSSQL funktioniert alles, obwohl 'AutoGenerateValue' auf arNone steht...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz