![]() |
Datenbank: mySQL • Version: 5.0.27 • Zugriff über: Zeos Lib 6.6.6
Stored Procedure via Zeos auf mySQL
Hallo Dpler,
ich versuche mich gerade an dem Thema Gespeicherte Prozeduren, dazu habe ich eine kleine Routine geschrieben. Die eine einfache Select Abfrage ausführt und mir ein Ergebnis liefern soll, an die Routine wird ein Parameter übergeben.
SQL-Code:
Jetzt habe ich versucht mit der Komponente TZStoredProc aus der Zeos Lib die Gespeicherte Prozedur aufzurufen,
DELIMITER $$
CREATE PROCEDURE `cbase2`.`GetIdentEK` (IN PoolID INT, OUT EK FLOAT) BEGIN SELECT Net FROM pool_order_history WHERE PID=PoolID ORDER BY Date LIMIT 1; END$$ jedoch gelang mir dies bisher nicht. Habe schon hier im Forum gesucht konnte aber bisher kein wirklich funktionierendes Beispiel finden wie man eine Gespeicherte Prozedur mit Hilfe von TZStoredProc aufruft. Bei folgendem Versuch erhalte ich immer die Fehlermeldung "Unsupported Operation". Lasse ich "StoredProc.Open" weg bekomme ich zwar keiner Fehlermeldung, aber auch kein Ergebnis, es passiert also nichts.
Delphi-Quellcode:
Über die mySQL Konsole klappt ein erfolgreicher Aufruf.
procedure TfrmPool_Component.Button1Click(Sender: TObject);
var StoredProc: TZStoredProc; begin StoredProc := TZStoredProc.Create(Self); try StoredProc.Connection := DMSQL.Con; StoredProc.StoredProcName := 'cbase2.GetIdentEK'; StoredProc.Params.Clear; with StoredProc.Params.CreateParam(ftInteger, 'PoolID', ptInput) do AsInteger := 0; with StoredProc.Params.CreateParam(ftFloat, 'EK', ptOutput) do AsFloat := 0; StoredProc.ParamByName('PoolID').AsInteger := 141; StoredProc.Open; if StoredProc.RecordCount > 0 then begin ShowMessage(StoredProc.FindField('EK').AsString); end; finally StoredProc.Close; StoredProc.Free; end; end;
Code:
Irritierend finde ich auch wieso eigentlich der Rückgabeparameter "EK" heißen soll aber im Konsolen Aufruf der Name der abgefragten Spalte auftaucht.
mysql> CALL cbase2.GetIdentEK(141, @res);
+------+ | Net | +------+ | 254 | +------+ 1 row in set (0.05 sec) Query OK, 0 rows affected (0.05 sec) mfg TUX |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 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