Ich habe das eben in der
IDE gemacht.
So nun habe ich folgenden Code
Delphi-Quellcode:
var dbproc: TSQLStoredProc;
begin
dbproc:=TSQLStoredProc.Create(
nil);
dbproc.SQLConnection:=
db;
dbproc.StoredProcName:= '
saveKomCom';
showmessage(inttostr(dbproc.Params.Count));
with dbproc.Params.CreateParam(ftInteger, '
auftrag', ptInput)
do asstring := '
100006';
with dbproc.Params.CreateParam(ftInteger, '
nummer', ptInput)
do asstring := '
sven@stalkingwolf.de';
with dbproc.Params.CreateParam(ftInteger, '
was', ptInput)
do asstring := '
eMail';
dbproc.Prepared := true;
showmessage('
davor');
dbproc.open;
dbproc.close;
showmessage('
danach');
dbproc.free;
end;
Nun ist es ganz lustig.
Gebe ich als
StoredProcName =
saveKomCom mit dann spuckt das showmessage danach 0 für params.count aus. und das open gibt als Fehlermeldung aus :
Listenindex überschreitet das Maximum(0).
Lasse ich die drei createParam weg, dann meckert er :
-696 SQL error : Variable (auftrag) has undefined value. Setze ich über
dbproc.ParamByName('auftrag').AsString:='100006';
den value erhalte ich die Meldung
Parameter auftrag nicht gefunden.
Setze ich über
dbproc.ParamByName('1').AsString:='100006'; dann erhalte ich die Meldung :
-694 SQL error : Too many arguments passed to procedure
Gebe ich als
StoredProcName =
savekomcom mit, dann erhalte ich als param.count
3 zurück. Setze ich über
dbproc.ParamByName('1').AsString:='100006';
den value erhalte ich die Meldung :
Data type 0 (subtype 0) is unsupported .
----------------------
Wenn ich eine SP ohne Parameter aufrufe, dann läuft diese durch. Liegt also wohl an den Parametern.
Sven