AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird: DDL-Skript (CREATE PROCEDURE) über Delphi, wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird: DDL-Skript (CREATE PROCEDURE) über Delphi, wie?

Ein Thema von alzaimar · begonnen am 12. Mär 2009 · letzter Beitrag vom 12. Mär 2009
Antwort Antwort
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

Firebird: DDL-Skript (CREATE PROCEDURE) über Delphi, wie?

  Alt 12. Mär 2009, 11:07
Datenbank: Firebird • Version: 2.1 • Zugriff über: SQLExpress oder IB
Hi,

Ich muss via Delphi eine Stored Procedure ändern. Ich verwende IB und SQLExpress-Komponenten.
Das Skript sieht so aus:
SQL-Code:
SET TERM ^ ;

CREATE OR ALTER PROCEDURE GETID (Name varchar(20))
returns (id integer)
as
begin
  select deID from Descriptions where deName :Name into :ID ;
  if (id is null) then begin
    id = GEN_ID(GEN_Descriptions,1);
    insert into Descriptions values(:id, :Name ,CURRENT_TIMESTAMP);
  end
  suspend;
end^

SET TERM ; ^
Das Skript will ich so ausführen:
SQLConnection.ExecuteDirect(sScriptCode); Klappt nicht, es erscheint der Fehler:
Zitat:
Token unknown - line 1, column 5
TERM.
Mit einem TSQLCommand geht's auch nicht. Was muss ich ändern, damit das geht?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Firebird: DDL-Skript (CREATE PROCEDURE) über Delphi, wie

  Alt 12. Mär 2009, 11:11
Wenn Du einen Batch ausführen lassen kannst (ShellExecute etc.)- geht es mit ISQL oder dem IBScript aus IBExpert

Gruss
wo
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Firebird: DDL-Skript (CREATE PROCEDURE) über Delphi, wie

  Alt 12. Mär 2009, 11:12
Hi,

ich kenne die SQLExpress-Komponenten nicht, aber ein SQL-Script kannst Du nur in einer entsprechenden Komponente absetzen, die das Script wiederum in einzelne SQL-Statements teilt und diese dann entsprechend absetzt.

Wenn es sich lediglich um EINE SQL-Anweisung handelt kannst Du diese natürlich auch mit einer "normale" SSQL-Komponente absetzen - d.h. in diesem Fall einfach das Set Term weglassen und nur die "Create Or Alter" absetzen.

Grüße
Lemmy
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Firebird: DDL-Skript (CREATE PROCEDURE) über Delphi, wie

  Alt 12. Mär 2009, 11:28
IBExpert kann das!

Ich musste die "SET TERM"-Anweisung extrahieren und dem IBScript das '^' als 'Terminator' ("I'll be back ) angeben. Die GRANTs habe ich separat abgesetzt.


Vielen Dank!
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Firebird: DDL-Skript (CREATE PROCEDURE) über Delphi, wie

  Alt 12. Mär 2009, 12:01
Hallo,

wie Lemmy schon richtig sagte.

Nimm eine normale Query und lass das Set Term weg.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

Re: Firebird: DDL-Skript (CREATE PROCEDURE) über Delphi, wie

  Alt 12. Mär 2009, 13:07
Zitat von hoika:
Hallo,

wie Lemmy schon richtig sagte.

Nimm eine normale Query und lass das Set Term weg.


Heiko
Ich habe aber die Erfahrung gemacht, das die Komponenten IBScript für solche SQL-Skripts die beste Lösung ist. Damit kann ich halt das SQL-Script von IBExpert oder einem anderen Programm direkt in meinen Sourcecode übernehmen und ausführen.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Firebird: DDL-Skript (CREATE PROCEDURE) über Delphi, wie

  Alt 12. Mär 2009, 13:16
Hallo,

schon klar,
ich wollte nur darauf hinweisen, dass es auch mit Board-Mitteln geht.

eine spezielle Script-Komponent ist natürlich besser,
weil z.B. die Set Term Sache drinbleiben kann.


Heiko
Heiko
  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 06:01 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