![]() |
AW: SQL Automatisch zugeteilte Id ermitteln.
Zitat:
Code:
Wenn das Feld "table.f1" das Primary Key Feld ist, ergibt sich das Problem, dass man den Autonkrementwert nicht kennt, und daher logischerweise auch kein
SELECT <autoincrementfield> FROM table WHERE f1=<Schlüsselwert>
Code:
durchführen kann. Denn <Schlüsselwert> ist bei Autoinkrement-Feldern nicht bekannt (wenn der Wert über einen BEFORE INSERT Trigger unter Verwendung eines Firebird-Generators erzeugt wurde, hat der Client nach Ausführung des INSERT keinen Zugriff auf den soeben erzeugten <Schlüsselwert>).
SELECT f1 FROM table WHERE f1=<Schlüsselwert>
|
AW: SQL Automatisch zugeteilte Id ermitteln.
der TE könnte ja mal erzählen, was für eine DB er einsetzt.
//edit da stehts :D mysql.. |
AW: SQL Automatisch zugeteilte Id ermitteln.
Man könnte auch die Frage lesen, den da steht MySQL!!
|
AW: SQL Automatisch zugeteilte Id ermitteln.
Die ganze Diskussion ist doch eigentlich unsinnig, denn
Das Thema geht eigentlich um Punkt (2) und der ist irgendwie nicht Thema der Diskussion ... Sollte also der Provider es nicht schaffen die von MySQL (das ist das RDBMS dieses Themas) generierte ID zu liefern, dann geht man eben den folgenden Weg:
SQL-Code:
CREATE TABLE `foo` (
`foo_id` int NOT NULL AUTO_INCREMENT , `foo_value` varchar(50) NOT NULL , PRIMARY KEY (`foo_id`) );
Delphi-Quellcode:
LQuery.SQL.Text := 'INSERT INTO foo (foo_value) VALUES (:foo_value); SELECT LAST_INSERT_ID() Foo_ID;';
LQuery.ParamByName('foo_value').Value := 'bar'; LQuery.Open; LId := LQuery.FieldByName('Foo_ID').Value; |
AW: SQL Automatisch zugeteilte Id ermitteln.
richtig!
aber genau das
Code:
muss in einer multiuser DB in einer transaktion aufgerufen werden, soweit ich das richtig sehe
LQuery.SQL.Text := 'INSERT INTO foo (foo_value) VALUES (:foo_value); SELECT LAST_INSERT_ID() Foo_ID;';
|
AW: SQL Automatisch zugeteilte Id ermitteln.
Eher 3) Ob man davon ausgehen kann, das der Datensatzzeiger im DataSet auf dem neuen Datensatz steht
|
AW: SQL Automatisch zugeteilte Id ermitteln.
Zitat:
http://dev.mysql.com/doc/refman/5.1/de/information-functions.html
|
AW: SQL Automatisch zugeteilte Id ermitteln.
Zitat:
Zitat:
f1 soll nicht primary Key sein, sondern lediglich eindeutiger Schlüssel. |
AW: SQL Automatisch zugeteilte Id ermitteln.
Zitat:
|
AW: SQL Automatisch zugeteilte Id ermitteln.
" jeder Client seine eigene Kennung abrufen kann, ohne die Aktivitäten anderer Clients berücksichtigen oder Sperren setzen bzw. Transaktionen verwenden zu müssen."
ok das war mir neu. danke! da arbeitet jede DB etwas anderst :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:42 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