AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Probleme mit Stored Procs, ZEOS und Firebird embedded
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Stored Procs, ZEOS und Firebird embedded

Ein Thema von lume96 · begonnen am 1. Feb 2005 · letzter Beitrag vom 1. Feb 2005
Antwort Antwort
Benutzerbild von lume96
lume96

Registriert seit: 14. Sep 2003
Ort: Rognac/Marseille - Frankreich
128 Beiträge
 
Delphi 7 Professional
 
#1

Probleme mit Stored Procs, ZEOS und Firebird embedded

  Alt 1. Feb 2005, 11:54
Moin,

Ich weiß, dass das Thema hier schon mal am Rande erwähnt wurde, wollte nur kurz nachfragen, ob es bereits eine Lösung gibt (hab gesucht, aber selbst keine gefunden).

Gegeben sei : D7 Pro, Firebird embedded 1.5.2, Zeos 6.1.5 stable (hab’s auch mit der 6.5.1 alpha probiert, ändert aber nichts).

Ich versuche einfach eine Stored Procedure auszuführen (mit ExecProc) und hätte gerne den Rückgabewert. Das funktioniert soweit auch ganz gut beim ersten Durchlauf. Wenn ich aber die Stored Procedure ein zweites Mal aufrufe (oder wenn ich die Verbindung zu Firebird schließe) bekomme ich einen Fehler -901 (SQL Error : Invalid Statement handle…).

Das Problem bei mehrfachem Ausführen der Stored Procedure kann ich umgehen, wenn ich die Komponente vor jedem ausführen dynamisch erstelle und hinterher wieder freigebe (etwas umständlich, aber was soll’s). Bleibt das Problem beim Schließen der Verbindung zur DB.

Hat jemand eine Lösung für das Problem ?

Tschüss,
Lutz
Lutz Meyer
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: Probleme mit Stored Procs, ZEOS und Firebird embedded

  Alt 1. Feb 2005, 12:55
Hi,

ich hab mal versucht, deinen Fehler nachzuvollziehen:
SQL-Code:
CREATE PROCEDURE TEST_5
RETURNS (Result INTEGER)
AS
BEGIN
  Result = 5;
  SUSPEND;
END
Delphi-Quellcode:
ZStoredProc.StoredProcName := 'Test_5';
ZStoredProc.ExecProc;
ShowMessage(ZStoredProc.ParamByName('Result').AsString);
Kein Problem - auch bei mehrfachem Aufrufen.

Allerdings tritt der von dir genannte Fehler beim Schließen der Connection auf.
Eine Möglichkeit, diesen Fehler zu umgehen, wäre:
Delphi-Quellcode:
try
  ZConnection.Disconnect;
except
  on E: Exception do;
end;
MfG
Stevie
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von lume96
lume96

Registriert seit: 14. Sep 2003
Ort: Rognac/Marseille - Frankreich
128 Beiträge
 
Delphi 7 Professional
 
#3

Re: Probleme mit Stored Procs, ZEOS und Firebird embedded

  Alt 1. Feb 2005, 13:23
Hi Stevie,
erst mal danke für die Antwort.

Hab vergessen zu erwähnen, dass meine Stored Proc auch Eingabewerte hat, die ich vor jedem Ausführen mit
Delphi-Quellcode:
ZStoredProc.ParamByName('Param1').AsString := 'abc';
ZStoredProc.ParamByName('Param2').AsInteger := 12;
setze.

Ausserdem ist mein Rückgabewert vom Typen Integer.

Ob's daran liegt werde ich später im Büro prüfen, denn davon abgesehen, sieht mein Quellcode dem von Dir angegebenen sehr ähnlich.

Tschüss,
Lutz
Lutz Meyer
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

Re: Probleme mit Stored Procs, ZEOS und Firebird embedded

  Alt 1. Feb 2005, 14:19
Hi Lutz,

ich hab nochmal genau geguckt und festgestellt, dass man zwischen Proceduren mit und ohne Rückgabe-Parameter unterscheiden muss.
Auf der Homepage von Domo Sokrat gibt's ein gutes Tutorial zu dem Einsatz von Zeos mit Firebird embedded.
Dort wird auch erklärt, wie man TZStoredProc benutzt und was dabei zu beachten ist.

MfG
Stevie
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von lume96
lume96

Registriert seit: 14. Sep 2003
Ort: Rognac/Marseille - Frankreich
128 Beiträge
 
Delphi 7 Professional
 
#5

Re: Probleme mit Stored Procs, ZEOS und Firebird embedded

  Alt 1. Feb 2005, 14:42
Hi Stevie,

Danke für den Link zu dem Zeos Tuto.
Ich hatte mir das Firebird embedded Tuto von Domo Sokrat angesehen (wurde igrendwo auf der DP darauf hingewiesen), hatte den zweiten Teil (bezüglich ZEOS) allerdings übersehen. Mal sehen, ob ich damit meine Probleme lösen kann.

Trotzdem noch mal kurz zum Problem :

Ich hab's noch mal durchgetestet und der Fehler bei wiederholtem Aufruf einer Stored Proc tritt tatsächlich nur dann auf, wenn man der Stored Proc vorher einen Wert übergibt.

Z.B. folgende SP :
SQL-Code:
CREATE PROCEDURE TEST2_PROC (
    INVALUE INTEGER)
RETURNS (
    RESULT INTEGER)
AS
BEGIN
  result = :INVALUE;
  SUSPEND;
END
In Delphi :
Delphi-Quellcode:
  ZStoredProc.ExecProc;
  MessageDlg(IntToStr(ZStoredProc.ParamByName('RESULT').Value),mtInformation,[mbOK],0);

  ZStoredProc.ExecProc;
  MessageDlg(IntToStr(ZStoredProc.ParamByName('RESULT').Value),mtInformation,[mbOK],0);
funktioniert, während
Delphi-Quellcode:
  ZStoredProc.ParamByName('INVALUE').Value := 1;
  ZStoredProc.ExecProc;
  MessageDlg(IntToStr(ZStoredProc.ParamByName('RESULT').Value),mtInformation,[mbOK],0);

  ZStoredProc.ExecProc;
  MessageDlg(IntToStr(ZStoredProc.ParamByName('RESULT').Value),mtInformation,[mbOK],0);
beim zweiten ExecProc nicht mehr funktioniert.

Schon komisch.

Tschüss,
Lutz
Lutz Meyer
  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 05:18 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