Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird Quelltext eines Generators lesen (https://www.delphipraxis.net/197827-firebird-quelltext-eines-generators-lesen.html)

Codehunter 8. Sep 2018 21:07

AW: Firebird Quelltext eines Generators lesen
 
Zitat:

Zitat von mkinzler (Beitrag 1412761)
Das wird der aktuelle Wert sein.

Nur müsste der dann nicht bei allen Generatoren im "DDL" so erscheinen und nicht nur bei manchen?

IBExpert 8. Sep 2018 23:27

AW: Firebird Quelltext eines Generators lesen
 
Generatoren abrufen und Werte auslesen ist ziemlich einfach
Bei einem Trigger musst du für vollständige SQLs diverse Attribute aus RDB$Triggers auswerten, um zu wissen ob das ein before oder after trigger ist, ein database trigger, etc.
Für den Main Body gibt es das jeweilige Source Feld, das reicht aber nicht für die Create Trigger Deklaration, für Alter Trigger aber schon.

Bei Stored procs ist das noch wesentlich komplizierter, weil da der Header aus RDB$PROCEDURES und RDB$PROCEDURE_PARAMETERS kommen und je nach dem wie die deklariert sind, auch noch rdb$fields etc.

Das ist im Gegensatz zu Generatoren nicht mal eben allgemeingültig zu machen, ich weiß wovon ich rede ;-)


Für Generatoren aber hier eine kleine Hilfe

Code:
execute block
returns
(create_sql varchar(200),
set_val varchar(200))
as
declare variable gn varchar(31);
declare variable val bigint;
begin
  for select trim(rdb$generators.rdb$generator_name)
      from rdb$generators
      where rdb$generators.rdb$generator_name not containing '$'
      into gn
  do
  begin
    create_sql='create generator '||gn;
    execute statement 'select gen_id('||gn||',0) from rdb$database' into val;
    set_val='set generator '||gn||' to '||val;
    suspend;
  end
end


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 Uhr.
Seite 2 von 2     12   

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