Einzelnen Beitrag anzeigen

Benutzerbild von Sven Janssen
Sven Janssen

Registriert seit: 22. Jun 2004
Ort: Mayen
187 Beiträge
 
Delphi 4 Professional
 
#7

Re: Stored Procedure Aufruf Fehler

  Alt 23. Jun 2005, 11:06
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
:wq /dev/null
He who fights with monsters might take care lest he thereby become a monster - Nietzsche
  Mit Zitat antworten Zitat