Postavi jedan TIBQuery na formu, vezi ga sa bazom i iskoristi ove metode:
Code:
function TForm1.GetAutoInc(const NazivGeneratora: string): integer;
const
sSQL = 'SELECT GEN_ID(%s, 1) FROM RDB$DATABASE';
begin
IBQuery1.Sql.Text := Format(sSQL, [NazivGeneratora]);
IBQuery1.Open;
Result := IBQuery1.Fields[0].AsInteger;
IBQuery1.Close;
end;
procedure TForm1.IBTable1BeforePost(DataSet:TDataSet);
begin
DataSet.FieldByName('ID_KORINIKA').AsInteger:=GetAutoInc('NAZIV_GENERATORA');
end;
Mnogo je bolje da koristis TIBDataSet. Ako hoces da koristis trigere (kao sto ti je rekao aleksandarpopov) onda napravis
triger before insert:
Code:
CREATE TRIGGER BI_TVOJA_TABELA FOR TVOJA_TABELA ACTIVE
BEFORE INSERT POSITION 0
AS
BEGIN
new.TVOJE_AUTO_INC_POLJE=gen_id(NAZIV_GENERATORA,1);
END
Marcha
-----------------------------------
Pretpostavka je majka zajeba.