Gracias por los aportes, pongo a disposición la forma en que lo resolví.
Este Procedure tiene la capacidad de tomar un Blob desde la BBDD y devolver un Stream. Luego lo convierto en lo que corresponda.
Código Delphi
[-]
function TDataModule1.recupero_Valor_Entorno(cod_sucursal:integer; nombre_Entorno:string):TStream;
begin
with DataModule1.spValorEntorno do
begin
Close;
Params.Clear;
StoredProcName:='RECUPERO_VALOR_ENTORNO '; Params.CreateParam(ftInteger, 'COD_SUCURSAL', ptInput); Params.CreateParam(ftWideString, 'NOMBRE_ENTORNO', ptInput); Params.CreateParam(ftBlob, 'VALOR', ptOutput); ParamByName('COD_SUCURSAL').AsInteger:=cod_sucursal;
ParamByName('NOMBRE_ENTORNO').AsString:=nombre_entorno ;
Prepare; try
OpenOrExecute;
if FieldByName('VALOR') is TBlobField then
begin
Result:=CreateBlobStream(spValorEntorno.FieldByName('VALOR'), bmRead);
end;
unPrepare;
except
on exception do
begin
UnPrepare;
raise;
end;
end; end;
end;
Gracias por la ayuda y espero que sirva a otros para manejar mejor los Store Procedure de la BBDD Firebird.