![]() |
Datenbank: Interbase • Version: 6 • Zugriff über: IB-Expert, UIB-Komponenten
Create Table aus Interbase Stored Procedure ausführen
Hallo :hi: ,
ich möchte eine Stored Procedure nutzen, welche im Falle einer fehlenden Tabelle diese für mich anlegt:
Code:
Leider bekomme ich eine Fehlermeldung mit Hinweis auf Create.
begin
select count(*) from RDB$RELATION_FIELDS where RDB$RELATION_NAME=:TABLENAME into :TABLEEXISTS; if (:TABLEEXISTS=0) then /* Tabelle existiert nicht */ begin create table...; end suspend; end Kann man innerhalb einer Stored Procedure unter Interbase kein Create verwenden? :gruebel: In MSSQL-Server gings auf jeden Fall. Vielen Dank im Voraus René |
Re: Create Table aus Interbase Stored Procedure ausführen
kommt glaub ich auf die definition der procedure bzw. function an. kannst du mal den kopf posten?
|
Re: Create Table aus Interbase Stored Procedure ausführen
Hi,
in einer StoredProcedure (und Trigger) in IB und FB kann KEINE DDL-Anweisung (also create, drop, alter) ausgeführt werden! Grüße Lemmy |
Re: Create Table aus Interbase Stored Procedure ausführen
naja also ich kenn mich mit StoredProcedures in oracle weng aus und da ist es meiner meinung nach so, dass man des im kopf mit angegeben kann, ob DDL-Anweisungen erlaubt sind...
|
Re: Create Table aus Interbase Stored Procedure ausführen
Zitat:
Code:
CREATE PROCEDURE SET_TIMESTAMPS (
TABLENAME VARCHAR(99)) AS DECLARE VARIABLE TABLEEXISTS INTEGER; Zitat:
Wie könnte ich das serverseitig sonst realisieren? |
Re: Create Table aus Interbase Stored Procedure ausführen
Hi,
kommt darauf an, was Du machen willst.... Generell kannst Du die DDL-Anweisung natürlich jeder Zeit durch nen Client ausführen lassen. Für weitere Tipps wären allerdings mehr Infos notwendig. Lemmy |
Re: Create Table aus Interbase Stored Procedure ausführen
1. Ich empfange Daten und füge sie per Insert in meine DB ein.
2. Dabei wird ein Timestamp in einem ungünstigen Format übergeben, sodass ich diesen erstmal als char(30) speichere. Vor dem Insert möchte ich aus verschiedenen Gründen das Format noch nicht anpassen 3. Nach dem Inserten sollen in eine Korrekturtabelle die TimeStamps im korrekten Format gespeichert werden, sodass später darauf gejoint werden kann Problem: Es soll alles möglichst automatisiert ablaufen, selbst das Erstellen der Korrekturtabellen. Es sollen bspw. die PKs sowie alle Timestamp-Felder der Standardtabelle in die Korrekturtabelle übernommen werden. Sicher lässt sich das recht schmerzlos von einem Delphi-Client aus realisieren, ich wollte diese Funktion aber gern serverseitig auslagern. Und nun muss ich hören, dass mit SPs kein DDL möglich ist :cry: |
Re: Create Table aus Interbase Stored Procedure ausführen
Warum die Timestamps in einer Korrekturtabelle auslagern und diese nachher joinen? Warum nicht gleich in eine zusätzliche Tabellenspalte?
Lemmy [edit] noch was: ich habe keinen Schimmer wie Dein Applikationsdesign aussieht, doch irgend ein Client muss den import starten. Genau dieser Client kann, ganz automatisch, überprüfen ob eine Korrektrutabelle notwendig ist und diese dann anlegen. [/edit] |
Re: Create Table aus Interbase Stored Procedure ausführen
Hallo Lemmy,
wir können das Zwiegespräch ja an dieser Stelle beenden :zwinker: Du hast schon recht, es gibt viele andere Varianten und ich werde wohl auch eine davon nutzen. Ich komme halt aus dem MSSQL-Server-Bereich und war es gewohnt, das Fat-Server-Prinzip anzuwenden. Hab schon gemerkt, dass ich mich nun doch immer mehr umstellen muss. Danke René |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:34 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