SQL-Code:
CREATE PROCEDURE GetLastId
//ALTER PROCEDURE GetLastId
(
LId Integer OUTPUT
)
BEGIN
DECLARE LAI Cursor;
DECLARE LastId integer;
INSERT INTO mytable (s) VALUES ('Large');
OPEN LAI AS SELECT LastAutoinc(Statement) AS LId FROM system.iota;
FETCH LAI;
INSERT INTO __OUTPUT VALUES (LAI.LId); // NULL
LastId = LAI.LId;
INSERT INTO __OUTPUT VALUES (LastId); // NULL
LastId = (SELECT LastAutoInc(Statement) AS Mid FROM system.iota); // NULL
INSERT INTO __OUTPUT VALUES (LastId); // NULL
SELECT * FROM mytable WHERE Id = LastAutoInc(Statement); // NULL
LastId = LastAutoInc(Statement); // NULL
INSERT INTO __OUTPUT VALUES (LastId); // NULL
// alles mit Toepfe anstatt system.iota // <-- NULL
CLOSE LAI;
END;
Meine Tabelle heisst mytable und ich musste den LastId Parameter umbenennen, da es eine Variable mit demselben Namen im Script gibt. Bei mir (ARc 10.10.0.0 mit ADS 10.10.0.0) funktioniert das obige hervorragend!?