Just to reiterate (using a different table).
Table setup:
IBConnection1.ExecuteDirect('CREATE TABLE PATHS('+
'ID INTEGER NOT NULL PRIMARY KEY, '+
'PATH VARCHAR(800), '+
'INCEPTION TIMESTAMP, '+
'DUPDATE TIMESTAMP)');
Trigger setup:
IBConnection1.ExecuteDirect('SET GENERATOR GEN_PATHS_ID TO 0;');
IBConnection1.ExecuteDirect('CREATE TRIGGER TR_PTH FOR PATHS ACTIVE BEFORE INSERT POSITION 0 AS '+
'BEGIN if (NEW.ID is NULL) then NEW.ID = GEN_ID(GEN_PATHS_ID, 1);END;');
This works:
SQLQuery1.Close;
SQLQuery1.SQL.Text:='INSERT INTO PATHS (PATH,INCEPTION,DUPDATE) VALUES ('''+
DPath+''','''+dCreatedS+''','''+dUpdatedS+''')';
SQLQuery1.ExecSQL;
SQLQuery1.Close;
SQLQuery1.SQL.Text:='select gen_id(GEN_PATHS_ID, 0) from rdb$database';
SQLQuery1.Open;
PathID:= SQLQuery1.FieldByName('GEN_ID').AsInteger;
This doesn't work (Generates an 'Unknown Token' Error):
SQLQuery1.SQL.Text:='INSERT INTO PATHS (PATH,INCEPTION,DUPDATE) VALUES ('''+
DPath+''','''+dCreatedS+''','''+dUpdatedS+''') RETURNING ID INTO :ID';
SQLQuery1.Open;