Delphi-PRAXiS
Seite 1 von 2  1 2      

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 13:55

Datenbank: Firebird • Version: 2.5 • Zugriff über: ZEOS

Firebird Quelltext eines Generators lesen
 
Hallo!

Wie kann man den Quelltext (DDL) eines Generators oder auch beliebiger anderer Objekte (Trigger, Stored Procedures...) mittels ZEOS als String/Memo abrufen?

Grüße
Cody

jobo 8. Sep 2018 15:04

AW: Firebird Quelltext eines Generators lesen
 
Vielleicht wirst Du hier fündig, vieles davon sind alledings nur Objektnamen, immerhin:
https://www.alberton.info/firebird_sql_meta_info.html
Evtl. ist das mit Vorsicht zu genießen, weil es u.U. versionsabhängig ist...


Beispiel für View Source:
Code:
select rdb$view_source
from rdb$relations
where rdb$relation_name = '<your view name>'
Das ist dann wohl kein komplettes DDL. Müsste man zur erneuten Anwendung etwas aufmotzen.

Da es einfach nur select statements sind, kann man es einfach mit irgendeiner Querykomponente abrufen. Welche dürfte egal sein.

Codehunter 8. Sep 2018 17:12

AW: Firebird Quelltext eines Generators lesen
 
Sieht auf den ersten Blick sehr vielversprechend aus. Ich wurschtel mich mal durch.

mkinzler 8. Sep 2018 17:28

AW: Firebird Quelltext eines Generators lesen
 
Trigger: RDB$TRIGGERS
SPs: RDB$PROCEDURES

Codehunter 8. Sep 2018 18:31

AW: Firebird Quelltext eines Generators lesen
 
Zitat:

Zitat von mkinzler (Beitrag 1412749)
Trigger: RDB$TRIGGERS
SPs: RDB$PROCEDURES

Ja, die sind ja noch einfach. Die Generatoren kann ich nicht finden. Ich habe nämlich eine DB bekommen, wo es Generatoren gibt die über das einfache
Code:
CREATE GENERATOR <name>;
hinaus gehen. Mit Tools wie dem SQL Manager Lite kann ich die ja anzeigen, darum hats mich interessiert wie ich die mit ZEOS auslesen kann.

mkinzler 8. Sep 2018 18:53

AW: Firebird Quelltext eines Generators lesen
 
Ein Generator ist ein unabhängig von einer Tabelle gespeicherter Wert. Für diesen gibt es keinen Quelltext.
Dieser wird meist durch einen Trigger oder auch im Programm verändert (mit SemaphorenFunktion GEN_ID()).
Der gesuchte Quelltext wird sich u.a. im BI-Trigger der/den entsprechenden Tabelle(n) befinden.

Delphi.Narium 8. Sep 2018 19:19

AW: Firebird Quelltext eines Generators lesen
 
Generatoren stehen in RDB$GENERATORS:

SQL-Code:
select 'create generator '||RDB$GENERATOR_NAME||';' as Generator from RDB$GENERATORS;

Codehunter 8. Sep 2018 20:37

AW: Firebird Quelltext eines Generators lesen
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1412755)
Generatoren stehen in RDB$GENERATORS:

SQL-Code:
select 'create generator '||RDB$GENERATOR_NAME||';' as Generator from RDB$GENERATORS;

Das ist geschummelt ;-) Der Grund warum ich frage: Wenn ich mit SQL Manager Lite schaue, sehe ich bei manchen Generatoren folgende DDL:
Code:
CREATE GENERATOR <name>;

SET GENERATOR <name> TO 1000;
Die zweite Zeile ist offensichtlich ein Vorgabewert. Darum habe ich angenommen, es gäbe wie bei Procedures und Triggern eine statische DDL. Anscheinend schummelt der SQL Manager da aber auch. Nur woher kommt der Vorgabewert, in dem Fall die "1000"?

mkinzler 8. Sep 2018 20:48

AW: Firebird Quelltext eines Generators lesen
 
Das wird der aktuelle Wert sein.

himitsu 8. Sep 2018 20:51

AW: Firebird Quelltext eines Generators lesen
 
Zitat:

Zitat von jobo (Beitrag 1412743)
Evtl. ist das mit Vorsicht zu genießen, weil es u.U. versionsabhängig ist...

Immer mehr DBMS halten sich an SQL ANSI Standards
und bieten zusätzlich zu ihren eigenen Informations-Strukturen oftmals auch "einheitliche" VIEWs an, wie z.B. information_schema.tables usw.

Wenn möglich sollte man es immer erstmal darüber versuchen, was es dann auch einfacher macht die Version zu ändern oder auf andere DBMS zu wechseln, wenn man möglichst nur einheitliche Dinge benutzt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 Uhr.
Seite 1 von 2  1 2      

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