![]() |
Datenbank: SQL Server • Version: 2005 STD • Zugriff über: ADO
Insert Befehl , Rückgabe ID Wert
Hi,
kann mir jemand sagen ob es möglich ist und zwar.: Ich habe eine Tabelle mit Identity Spalte: Wenn ich nun einen Insert mache bekomme ich dan niergendwie den ID wert zurück? Odr wie kann i den Auslesen direkt nach dem Insert? Danke. |
Re: Insert Befehl , Rückgabe ID Wert
Sobald Du einen neuen Datensatz eingefügt hast, kannst Du einfach die ID auslesen. Ob das auch bereits vor dem Post-Befehl funktioniert, müsste ich ausprobieren, glaub es aber nicht
|
Re: Insert Befehl , Rückgabe ID Wert
Am besten den Insert in einer SP kapseln, welche dann die ID zurück gibt.
SQL-Code:
...
Insert into kunden (Name, Vorname) Values (@Name, @Vorname) select @KundenID = @@Identity ... |
Re: Insert Befehl , Rückgabe ID Wert
SP ist schon mal gut, wichtig ist aber wo (oder von was ?) wird die ID überhaupt erzeugt ? Bei mir läufts so (allerdings IB/FB) : BI-Trigger für ID. Das Insert wird allerdings innerhalb der SP organisiert. Das hat den Vorteil, daß der vom Trigger erzeugte ID-Wert (und anderes) von der SP direkt als Rückgabe-Parameter dem eigenen Programm zur Verfügung steht, weil der Trigger eben innerhalb der SP ausgelöst wird. Das läuft also innerhalb der DB ab und hat mit Post usw. zumindest direkt nichts zu tun !
|
Re: Insert Befehl , Rückgabe ID Wert
Kann ich leider auch nicht genau sagen, da ich mich mit MSSQL Server nicht auskenne und ebenfalls nur mit Firebird arbeite. Da habe ich für solche IDs einen Generator, der im BI-Trigger Position 0 einer Tabelle einen ID-Wert generiert, sofern die ID = NUL ist.
so habe ich die möglichkeit, etwa in einer Insert-SP den ID-Wert selbst zu generieren, durch Aufruf des Generators für die betreffende Tabelle. |
Re: Insert Befehl , Rückgabe ID Wert
In MSSQL kannst Du ganz bequem die letzte ID abfragen, nachdem du deinen Datensatz eingefügt hast:
SQL-Code:
Du musst nur darauf achten, dass das alles innerhalb einer Transaktion abläuft.
SELECT @@IDENTITY AS InsertID
|
Re: Insert Befehl , Rückgabe ID Wert
ADO macht das aber ganz automatisch mit der TTable-Komponente (vorher die persistenten Felder deklarieren). Wenn ich da einen Datensatz einfüge, bekommt das Identityfeld nach dem Post sofort den Wert zugewiesen. Alles vollautomatisch.
|
Re: Insert Befehl , Rückgabe ID Wert
Hi folks,
seid ihr sicher mit der Transaktion? Zitat:
|
Re: Insert Befehl , Rückgabe ID Wert
Zitat:
Gruß Matthias |
Re: Insert Befehl , Rückgabe ID Wert
Hallo Matthias,
wie meinst du das? Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 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 by Thomas Breitkreuz