View Full Version : SQL Last Insert ID
... sagt mir jetzt aus dem Ärmel erst mal nix, aber der Dummy Select geht schon, dafür gibts extra eine Table, die per constraint nur einen Satz hat:
select ... from sysibm.sysdummy1
D*B
ich benutze keine Embedded SQL an der Stelle sondern das QSQPRCED API, kann man das evtl. auch über EXECUTE direkt ausführen?
@Dieter
Das API entspricht i.W. dem CLI für C/C++ ist nur ungleich komplizierter.
Selbst embedded SQL mit Prepare, Execute und USING SQLDA ist da erheblich einfacher.
Ggf. reicht hier dann auch ein:
exec sql set : MyLastIdentity = IDENTITY_VAL_LOCAL();
der Precompiler macht das draus
//****ql set :last_id = IDENTITY_VAL_LOCALE();
/END-FREE
C Z-ADD -4 SQLER6
C CALL SQLROUTE
C PARM SQLCA
C PARM SQL_00000
C SQL_00003 IFEQ '1'
C EVAL LAST_ID = SQL_00005
C END
/FREE
kann ich mich da auch dran klemmen?
Nein, leider nicht.
Der Precompiler generiert ein integriertes SQL-Paket und ruft mit verschiedenen Parametern die Ausführung auf.
Wenn du mehrere SQL-Befehle verwendest und dann die Auflösung betrachtest, siehst du, dass sich die Parameter ggf. verändern.
Die Aufrufe selber sind leider nicht dokumentiert und auch für CLI gibt es keine Entsprechungen für "set"-SQL's.
Schade wäre auch zu schön gewesen,
na dann löse ich das Problem vor erst mal mit dem Dummy Select.