Zitat von
Grumble:
danke nun klappt es
allerdings addierte
DBForm.query1.SQL.add('Select GEN_ID(GEN_IDRECORDS_ID,1) From RDB$Database');
immer noch ne id dazu...
deshalb hab ichs in
DBForm.query1.SQL.add('Select GEN_ID(GEN_IDRECORDS_ID,0) From RDB$Database');
geaendert... nun krieg ich wirklich die zuletzt geschriebene id raus
wo wird den die ID verwendet und in die Tabelle geschrieben ?
Wenn du es so machst wie oben, kann es dir passieren, wenn zwei gleichzeitig (von verschiedenen Computern) aus einen Eintrag erzeugen, das dann die ID's falsch sind, die die bekommst (mit GEN_ID(GEN_IDRECORDS_ID,0))
daher vielleicht eher so :
Delphi-Quellcode:
DBForm.query1.SQL.add('Select GEN_ID(GEN_IDRECORDS_ID,1) From RDB$Database');
DBForm.query1.Open;
id := DBForm.query1.Fields[0].AsInteger;
DBForm.query1.SQL.Add('insert into IDRECORDS (ID, s, ...) values (:ID, :s);');
DBForm.query1.ParamByName('ID').AsInteger := id;
DBForm.query1.ParamByName('s').AsString := s;
DBForm.query1.ExecQuery;
damit hast du 100% die richtige ID ...
nur als Vorschlag
Gruss
Hans