Delphi v.13
Firebird v.5
ZEOS v.8
pole GRAFIKA tabeli GRAFIKI typu BLOB (binary)
Następująca konstrukcj działa OK (przepisuje grafikę do Image1)
var
SS: TStringstream;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select GRAFIKA from GRAFIKI where ID = 5');
Query1.Open;
SS := TStringstream.Create(Query1.FieldByName('GRAFIKA').AsString);
Image1.Picture.LoadFromStream(SS);
Natomiast konstrukcja z wykorzystaniem StoredProc wykonuje się z błędami
StoredProc1.StoredProcName := 'NAZWA_PROCEDURY';
StoredProc1.Params.Clear;
StoredProc1.Params.AddParam(StoredProc1.Params.CreateParam(ftInteger, 'ID', ptInput));
StoredProc1.ParamByName('ID').AsInteger := 5;
StoredProc1.Params.AddParam(StoredProc1.Params.CreateParam(ftBlob, 'GRAFIKA', ptOutput));
StoredProc1.ExecProc;
SS := TStringstream.Create(StoredProc1.ParamByName('GRAFIKA').AsString);
Image1.Picture.LoadFromStream(SS);
Dlaczego tak się dzieje ?
Sama procedura wykonuje się prawidłowo.
Powyższe wersje przy użyciu UNIDAC wykonywały się prawidłowo !