czy ktos z Was mial kiedys problem z odbieraniem parametrow z procedury skladowanej?
klade na formularzu 2 komponenty (TZConnection i TZStoredProc)
ustawiam
TZConnection: sciezke do bazy, protokol, uzytkownika, haslo, connected -> true
TZStoredProcedure: polaczenie, procedure w bazie i parametry.
po uruchomieniu progrmu wykonuje jeszcze:
procedure TForm1.Button1Click(Sender: TObject);
begin
ZStoredProc1.ParamByName('A').AsInteger := 2;
ZStoredProc1.ParamByName('B').AsInteger := 3;
ZStoredProc1.ExecProc;
ShowMessage(IntToStr(ZStoredProc1.ParamByName('WYNIK').asinteger));
end;
no i wszystko gra.
jednak chce tego uzyc w konsolowym programie wiec musze zrezygnowac z ObjectInspectora
i wszystko pisze recznie:
procedure TForm1.Button2Click(Sender: TObject);
var connection: TZConnection;
storedProc: TZStoredProc;
begin
Connection := TZConnection.Create(nil);
Connection.Database := 'C:\Bazy\WAM.ib';
Connection.Protocol := 'firebird-2.1';
connection.Password := '###';
connection.User := '***';
Connection.Connect;
showmessage('polaczono');
StoredProc := TZStoredProc.Create(nil);
StoredProc.Connection := Connection;
StoredProc.StoredProcName := 'MNOZENIE';
StoredProc.Params.Clear;
with TParam.Create(StoredProc.Params,ptInput) do begin
DataType := ftInteger;
Name := 'A';
NumericScale:=0;
Precision := 0;
Size:= 0;
end;
with TParam.Create(StoredProc.Params,ptInput) do begin
Name := 'B';
DataType := ftInteger;
NumericScale:=0;
Precision := 0;
Size:= 0;
end;
with TParam.Create(StoredProc.Params,ptOutput) do begin
Name := 'WYNIK';
DataType := ftInteger;
NumericScale:=0;
Precision := 0;
Size:= 0;
end;
StoredProc.ParamByName('A').AsInteger:=7;
StoredProc.ParamByName('B').AsInteger:=3;
StoredProc.ExecProc;
showmessage('Wynik procedury: '+inttostr(StoredProc.ParamByName('WYNIK').AsInteger));
Connection.Disconnect;
storedProc.free;
connection.free;
end;
to po wykonaniu tej procedury (w delphi)
na serwerze bazy danych zachodza zmiany takie jak powinny ale w parametrze WYNIK
mam wartosc 0 (ZERO). Czy ktos wie dlaczego tak sie dzieje??????????????????????????