Ver Mensaje Individual
  #3  
Antiguo 17-01-2017
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Reputación: 21
santiago14 Va por buen camino
Wink

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 ';  //nombre del store procedure
    Params.CreateParam(ftInteger, 'COD_SUCURSAL', ptInput); //creamos el parametro de entrada
    Params.CreateParam(ftWideString, 'NOMBRE_ENTORNO', ptInput); //creamos el parametro de entrada
    //Params.CreateParam(ftWideString, 'VALOR', ptOutput);   //creamos el parametro de salida
    Params.CreateParam(ftBlob, 'VALOR', ptOutput);   //creamos el parametro de salida
    ParamByName('COD_SUCURSAL').AsInteger:=cod_sucursal;
    ParamByName('NOMBRE_ENTORNO').AsString:=nombre_entorno ;  //le asignamos al param. entrada su valor

    Prepare; //hacemos que se "arme" el objeto SP
    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; //del try
  end;
end;

Gracias por la ayuda y espero que sirva a otros para manejar mejor los Store Procedure de la BBDD Firebird.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita