Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird: Generierte ID ermitteln ? (https://www.delphipraxis.net/15530-firebird-generierte-id-ermitteln.html)

Rolf Rostig 30. Jan 2004 12:40


Firebird: Generierte ID ermitteln ?
 
Hallo,

ich möchte nach einem Post den zuletzt bearbeiteten
Datensatz noch mal ausgewählen und brauche dafür
die generierte ID.
Es gibt ein Beispiel unter Interbase: Generierte ID ermitteln ?

Aber da ich noch nicht mit Stored Procedure gearbeitet habe, weis ich nicht wie ich das Beispiel umsetzen soll.
Meine Tabelle heist T_Auftrag und der Generator GEN_DS_AUFTRAG.
Wer kann mir helfen?

Jens Schumann 30. Jan 2004 13:18

Re: Firebird: Generierte ID ermitteln ?
 
Hallo Rolf,
wenn ich nach dem Posten die ID haben will, hole ich mir mit einer StoredProc vor dem Post die nächste GeneratorID. Dafür habe ich in der Datenbank eine StoredProc angelegt.
Hier die Metadaten
Code:
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;
/* Stored procedures */
CREATE PROCEDURE "GET_MAIL_ID"
RETURNS
(
  "NEWID" INTEGER
)
AS
BEGIN EXIT; END ^
ALTER PROCEDURE "GET_MAIL_ID"
RETURNS
(
  "NEWID" INTEGER
)
AS
BEGIN
  NewID = GEN_ID(DBFILES_GEN,1);
END
 ^
SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;
Mit folgender Funktion hole ich im Programm dann die GeneratorID
Delphi-Quellcode:
function TDBM_Main.GetNewMailID: Integer;
begin
  Result:=-1;
  IBTransaction.StartTransaction;
  Try
    IBStoredProcMailID.ExecProc;
    Result:=IBStoredProcMailID.Params[0].AsInteger;
  Finally
    IBTransaction.Commit;
    end;
end;

Marcel Gascoyne 30. Jan 2004 13:35

Re: Firebird: Generierte ID ermitteln ?
 
Wozu der Aufwand mit der Procedure ?
Geht doch auch mit dieser kurzen SQL Anweisung:

SQL-Code:
select gen_id(dbfiles_gen,1) from rdb$database

Gruß,
Marcel

Jens Schumann 30. Jan 2004 18:41

Re: Firebird: Generierte ID ermitteln ?
 
Zitat:

Zitat von Marcel Gascoyne
Wozu der Aufwand mit der Procedure ?
Geht doch auch mit dieser kurzen SQL Anweisung:

SQL-Code:
select gen_id(dbfiles_gen,1) from rdb$database

Gruß,
Marcel

Cool - habe ich noch nicht gewußt. Gleich mal ausprobieren

Rolf Rostig 31. Jan 2004 13:00

Re: Firebird: Generierte ID ermitteln ?
 
Delphi-Quellcode:
select gen_id(dbfiles_gen,1) from rdb$database
Habe ich ausprobiert und.... es funzt.
Danke

venomsoup 28. Jan 2005 17:23

Re: Firebird: Generierte ID ermitteln ?
 
:-D Danke Jungs, ihr wart mir mit diesem Threat sehr hilfreich...
Genau diese Prozedur hab ich gesucht!!
Delphi-Praxis is halt immer der erste Platz wo gesucht wird wenn ma was ned klappt!
Hier ein virtuelles Bier für euch : :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz