AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Create Table aus Interbase Stored Procedure ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

Create Table aus Interbase Stored Procedure ausführen

Ein Thema von smudo · begonnen am 3. Nov 2005 · letzter Beitrag vom 4. Nov 2005
Antwort Antwort
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#1

Create Table aus Interbase Stored Procedure ausführen

  Alt 3. Nov 2005, 11:22
Datenbank: Interbase • Version: 6 • Zugriff über: IB-Expert, UIB-Komponenten
Hallo ,

ich möchte eine Stored Procedure nutzen, welche im Falle einer fehlenden Tabelle diese für mich anlegt:
Code:
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
Leider bekomme ich eine Fehlermeldung mit Hinweis auf Create.
Kann man innerhalb einer Stored Procedure unter Interbase kein Create verwenden?
In MSSQL-Server gings auf jeden Fall.

Vielen Dank im Voraus

René
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#2

Re: Create Table aus Interbase Stored Procedure ausführen

  Alt 3. Nov 2005, 11:54
kommt glaub ich auf die definition der procedure bzw. function an. kannst du mal den kopf posten?
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Create Table aus Interbase Stored Procedure ausführen

  Alt 3. Nov 2005, 12:03
Hi,

in einer StoredProcedure (und Trigger) in IB und FB kann KEINE DDL-Anweisung (also create, drop, alter) ausgeführt werden!

Grüße
Lemmy
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#4

Re: Create Table aus Interbase Stored Procedure ausführen

  Alt 3. Nov 2005, 12:11
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...
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Create Table aus Interbase Stored Procedure ausführen

  Alt 3. Nov 2005, 13:35
Zitat von mumu:
kannst du mal den kopf posten?
Ja, aber ich glaub nicht, dass das hilfreich ist...
Code:
CREATE PROCEDURE SET_TIMESTAMPS (
    TABLENAME VARCHAR(99))
AS
DECLARE VARIABLE TABLEEXISTS INTEGER;
Zitat von Lemmy:
in einer StoredProcedure (und Trigger) in IB und FB kann KEINE DDL-Anweisung (also create, drop, alter) ausgeführt werden!
Das klingt plausibel, banal und zerstört meine Pläne
Wie könnte ich das serverseitig sonst realisieren?
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Create Table aus Interbase Stored Procedure ausführen

  Alt 3. Nov 2005, 14:19
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
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Create Table aus Interbase Stored Procedure ausführen

  Alt 3. Nov 2005, 15:26
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
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Create Table aus Interbase Stored Procedure ausführen

  Alt 3. Nov 2005, 15:32
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]
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Create Table aus Interbase Stored Procedure ausführen

  Alt 4. Nov 2005, 08:48
Hallo Lemmy,

wir können das Zwiegespräch ja an dieser Stelle beenden
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é
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 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