SQLScript Procedure in Firebird Datenbank speichern, wie ?

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Verdi
Beiträge: 7
Registriert: So 1. Jan 2012, 12:42

SQLScript Procedure in Firebird Datenbank speichern, wie ?

Beitrag von Verdi »

Hallo

Ich arbeite mit:
Windows 10
Lazarus 1.4.4
Firebird embedded 2.5.5

Folgende Frage:

Ich möchte übungshalber mit TSQLScript folgende Procedure in Firebird speichern:
(Dass der Code sinnlos ist, ist mir klar, es geht nur um das Üben)

Code: Alles auswählen

CREATE PROCEDURE NAME_GET_ALL
returns(kunr integer, name varchar(100))
AS
BEGIN
  FOR SELECT KuNr, Name
  FROM "Person"
  into :KuNr, :Name
  DO
  BEGIN
    SUSPEND;
  END
END
 
Konfiguration von SQLScript:
CommensinSQL  true
Database IBConnection1
Script, siehe oben
Terminator ^
Transaction  SQLTransaction1
UseCommit true
UseDefines true  (leer)
UseSetTerm true


SQLScript.ExecuteScript führt alles fehlerfrei aus, aber die Procedure wird nicht gespeichert.
Kontrolle mit TurboBird.

Eine genaue Anleitung wie man so was macht finde ich nirgends.
Nach mehreren Tagen Pröbelei liegen meine Nerven langsam blank.

Kann mir jemand zeigen wie ich die Procedure mit Lazarus / FreePascal erfolgreich speichern kann? Die Methode ist mir egal, Hauptsache es geht irgendwie.
Manuell mit TurboBird geht das, aber über SQLScript oder SQLQuery geht es nicht.

Vielen Dank für die Hilfe.

Herzliche Grüsse
Verdi
Zuletzt geändert von Lori am Fr 8. Apr 2016, 20:07, insgesamt 1-mal geändert.
Grund: Highlighter

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: SQLScript Procedure in Firebird Datenbank speichern, wie

Beitrag von Michl »

Ich habe zwar kein Firebird installiert, nutze aber SQL-Functions mit PostgreSQL und ZEOS.

Mit SQLDB (SQLTransaction.Action = caNone) könnte es z.B. so gehen (ungetestet):

Code: Alles auswählen

  SQLQuery1.SQL.Text :=
    'CREATE PROCEDURE NAME_GET_ALL ' +
    'returns(kunr integer, name varchar(100)) ' +
    'AS ' +
    'BEGIN ' +
      'FOR SELECT KuNr, Name ' +
      'FROM "Person" ' +
      'into :KuNr, :Name ' +
      'DO ' +
      'BEGIN ' +
        'SUSPEND; ' +
      'END ' +
    'END;';
  SQLQuery1.ExecSQL;
  SQLQuery1.ApplyUpdates;
  SQLTransaction1.Commit;

Evtl. hilft dir der Einstieg hier http://wiki.freepascal.org/SQLdb_Programming_Reference?

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Verdi
Beiträge: 7
Registriert: So 1. Jan 2012, 12:42

Re: SQLScript Procedure in Firebird Datenbank speichern, wie

Beitrag von Verdi »

Hallo Michl
** Vielen Dank für Deine Hilfe **
Ich werde es gerne, gemäss Deinem Vorschlag, über das Wochenende probieren.
Herzliche Grüsse aus der Schweiz
Verdi

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: SQLScript Procedure in Firebird Datenbank speichern, wie

Beitrag von Michl »

Viele Grüße aus der Schweiz zurück, bin gerade geschäftlich hier :)

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Antworten