AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Insert Befehl , Rückgabe ID Wert
Thema durchsuchen
Ansicht
Themen-Optionen

Insert Befehl , Rückgabe ID Wert

Ein Thema von renekr · begonnen am 20. Mär 2006 · letzter Beitrag vom 21. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#1

Insert Befehl , Rückgabe ID Wert

  Alt 20. Mär 2006, 22:22
Datenbank: SQL Server • Version: 2005 STD • Zugriff über: ADO
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.
  Mit Zitat antworten Zitat
Ralf Stehle

Registriert seit: 8. Aug 2003
124 Beiträge
 
Delphi 7 Professional
 
#2

Re: Insert Befehl , Rückgabe ID Wert

  Alt 20. Mär 2006, 22:28
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
Ralf Stehle
ralfstehle@yahoo.de
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Insert Befehl , Rückgabe ID Wert

  Alt 20. Mär 2006, 22:31
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
...
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Insert Befehl , Rückgabe ID Wert

  Alt 20. Mär 2006, 23:48
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 !
Gruß
Hansa
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Insert Befehl , Rückgabe ID Wert

  Alt 21. Mär 2006, 07:28
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.
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Insert Befehl , Rückgabe ID Wert

  Alt 21. Mär 2006, 08:08
In MSSQL kannst Du ganz bequem die letzte ID abfragen, nachdem du deinen Datensatz eingefügt hast:
SELECT @@IDENTITY AS InsertID Du musst nur darauf achten, dass das alles innerhalb einer Transaktion abläuft.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Insert Befehl , Rückgabe ID Wert

  Alt 21. Mär 2006, 08:30
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Insert Befehl , Rückgabe ID Wert

  Alt 21. Mär 2006, 08:35
Hi folks,

seid ihr sicher mit der Transaktion?

Zitat:
@@IDENTITY und SCOPE_IDENTITY geben den letzten Identitätswert zurück, der in einer Tabelle in der aktuellen Sitzung generiert wurde.
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
mbamler

Registriert seit: 19. Mai 2005
Ort: Hamburg
118 Beiträge
 
Delphi 7 Architect
 
#9

Re: Insert Befehl , Rückgabe ID Wert

  Alt 21. Mär 2006, 09:17
Zitat von marabu:
Hi folks,

seid ihr sicher mit der Transaktion?

Zitat:
@@IDENTITY und SCOPE_IDENTITY geben den letzten Identitätswert zurück, der in einer Tabelle in der aktuellen Sitzung generiert wurde.
Freundliche Grüße vom marabu
Leider funktioniert das auch nicht, wenn durch den vorherigen Insert-Befehl Trigger ausgelöst werden ...

Gruß
Matthias
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Insert Befehl , Rückgabe ID Wert

  Alt 21. Mär 2006, 09:43
Hallo Matthias,

wie meinst du das?

Zitat:
Wenn die Anweisung einen oder mehrere Trigger auslöst, die Einfügevorgänge zum Generieren von Identitätswerten durchführen, wird durch das Aufrufen von @@IDENTITY sofort nach der Anweisung der letzte von den Triggern generierte Identitätswert zurückgegeben.
marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz