Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Interbase Generatoren in Stored Proc (https://www.delphipraxis.net/1322-interbase-generatoren-stored-proc.html)

danielA 14. Nov 2002 15:05


Interbase Generatoren in Stored Proc
 
Hallo erstmal,

gibt es eigentlich eine Möglichkeit einen Generator aus einer Variable heraus aufzurufen

z.B.
Code:
Create Procedure Test
AS
   DECLARE VARIABLE MyGEN_NAME VARCHAR(20);
   DECLARE VARIABLE GENWERT INT;
BEGIN
...
   MyGEN_NAME = 'TESTGENERATOR';
   GENWERT = GEN_ID(:MyGEN_NAME,1);
...
END
^
vielen Dank
Gruß danielA

Lemmy 15. Nov 2002 07:28

Hi,

das kannst Du so machen:

Code:
   Select gen_ID(Generatorname,1) from rdb$database into :variable;
wobei Generatorname eben der Generator ist. Die Tabelle rdb$database existiert in jeder IB/FB-Tabelle und beinhaltet einen einzigen Datensatz und ist daher für solche Sachen ideal geeignet.

Grüße
Lemmy[/code]

danielA 15. Nov 2002 10:36

Hallo Lemmy,

Danke erstmal für die Antwort aber ich habe mein Problem wahrscheinlich falsch dargestellt.

Mein Problem ist, es wird in einer Stored Procedure der Name eines Generators aus einer Tabelle ausgelesen und dieser Generator soll dann aufgerufen werden. Ich kenne nur leider die Namen der Generatoren nicht zur Entwurfszeit. Ich hatte die Hoffnung die sache evtl. mit soetwas wie
Code:
EXECUTE IMMEDIATE
lösen zu können aber dieser Befehl steht mir in Stored Procedures leider nicht zur Verfügung. Also etwa soetwas.

Code:
SET TERM ;^
Create Procedure TestProc (MyGEN_NAME VARCHAR(20))
   RETURNS (GENWERT INT)
AS
BEGIN
   EXECUTE IMMEDIATE 'GENWERT = gen_ID(' || :MyGEN_NAME ||',1)';
END
^
Ich glaube ich werde das wohl leider anders lösen müssen.

Gruß danielA

Gast 15. Nov 2002 12:11

Hallo Daniel, :)

gleich am Montag werde ich danach schauen (falls bis dann noch keine Lösung hier gefunden wird)... ich glaube so etwas ist möglich...

Gruß

Paul Jr.

Gast 20. Nov 2002 12:18

Hallo Daniel,

Du meldest Dich nicht hier... und jetzt weiß ich nicht, bo Du schon etwas gefunden hast... Ich bin jetzt leider diese Woche bei einem Kunde (bin nur ganz kurz hier...) und kann ich mich damit jetzt nicht beschäftigen...So...

Melde Dich hier bitte... und nächste Woche werde ich schauen was sich machen läßt... da ich schon etwas änliches unter Oracle geschaft habe... aber jetzt weiß ich noch nicht, ob sich auch so was unter InterBase machen läßt...

Gruß

Paul Jr.

danielA 20. Nov 2002 14:09

Hallo Paul,

ich dachte schon du hast mich vergessen, dabei hast du nur auf Antwort von mir gewartet, entschuldigung :oops:.
Ich habe leider noch nichts zu diesem Problem gefunden und werde es jetzt wohl ersteinmal anders lösen müssen.
Ich wüßte dennoch gern ob und wie das geht, da es doch vieles vereinfachen könnte.

Gruß und bis dann

danielA

Gast 26. Nov 2002 06:25

Hallo Daniel, 8)

nun heute schaue ich ob das machbar ist...

Gruß

Paul Jr.

danielA 26. Nov 2002 08:15

Ok, bis dann

danielA

Gast 27. Nov 2002 12:20

Hallo Daniel, 8)

also ich habe einiges ausprobiert und habe leider nicht hingekriegt.. :cry:

es tut mir Leid...

Gruß

Paul Jr.

danielA 27. Nov 2002 13:13

Hallo Paul

macht nichts trotzdem Danke

Gruß danielA


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 Uhr.

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