Hallo Leute!
Folgendes Problem:
Ich hab in einer MS-
SQL-Datenbank eine StoredProcedure:
CREATE PROC dbo.dk32_delete_depotR @iDepot INT
Die tut was sie soll, wenn ich sie per "EXECUTE dk32_delete_depotR 5" in einer Abfrage öffne.
Der Wert 5 in obigem Beispiel wird in der Variablen iDepot gespeichert und alles ist Prima!
Jetzt muß ich die Procedure aus Delphi heraus aufrufen. Dazu benutze ich die bestehende Datenbankverbindung:
Delphi-Quellcode:
function DeleteDbDepotListe(const iDepotR : Integer) : Byte;
begin
with gMySqlServerObject.SQLStoredProc do
begin
StoredProcName := 'dk32_delete_depotR';
Params.Clear;
Params.CreateParam(ftFMTBcd,'RESULT',ptResult);
Params.CreateParam(ftInteger,'iDepot',ptInput);
ParamByName('iDepot').AsInteger := iDepotR;
ExecProc;
end;
end;
Das SQLStoredProc-Object ist in mein ServerObject wie folgt eingebunden:
Delphi-Quellcode:
type
TMySqlServerObject = class(TObject)
private
MySqlServerConnectionData : TMySqlServerConnectionData;
gbSqlServerConnected : Boolean;
gszLastErrorMessage : String;
SQLConnection : TSQLConnection;
SQLQuery : TSQLQuery;
public
SQLStoredProc : TSQLStoredProc;
...
Beim Ausführen des ExecProc erhalte ich eine Fehlermeldung:
'Listenindex überschreitet das Maximum (0)'
Ich brüte jetzt schon ziemlich lange daran herum und hab auch schon alle mir bekannten Foren durchsucht. Es gibt dort Hinweise, das die dbExpress-Schnittstelle das Problem ist.
Wer kann helfen?
Ich benutze Delphi2005 mit Update 3.
THX
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)