Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Problema Campo BLOB y FastReport ... Help (https://www.clubdelphi.com/foros/showthread.php?t=66742)

Efren2006 10-03-2010 04:04:39

Problema Campo BLOB y FastReport ... Help
 
Tengo el Siguiente Problema:

Tengo una aplicacion (D2009) que usa FastReport (V4.7.5) y tengo todos los Reportes de la Aplicacion en Archivos.fr3, pero por medidas de Seguridad me gustaria colocar todos los Formatos en mi BD (Firebird 2.1) ya realice todos y los cambios a la aplicacion, pero no funciona correctamente, el problema al parecer es que no Guarda de Forma Correcta dentro del Campo BLOB.
Lo mas insolito es que compare visualmente el Archivo .fr3 y un archivo texto donde guardo el valor del campo BLOB y se ven identicos, pero este ultimo lo leo o trato de abrir con fastreport y no funciona, me atrevo a pensar que al guardarlo algo le cambia que no puedo notar.

Preguntas:
-Alguien ha Hecho esto con Anterioridad para que me guie ?
- Como debe configurarce el Campo Blob dentro de la BD. ?

Describo Brevemente las funciones de Guardar y el de llamado al reporte

Guardar:
Código Delphi [-]

procedure TBioFormatos.GuardaReporte;
Var
  Archivo:AnsiString;
  Campo,ArcMemo:TStream;
begin
  inherited;
  if Application.MessageBox('Desea Sincronizar este Reporte en la Base de Datos..?','VALIDAR',MB_YESNO+MB_ICONEXCLAMATION)=IdYes Then
        Begin
        Try
          Screen.Cursor:=crHourGlass;
          LockWindowUpdate(Handle);
         Archivo:=Global.RutaReporte+TRIM(FormatosNOMARCHI.Value)+'.fr3';
          if FileExists(Archivo) Then
             Begin
             Diseno.Close;   
             Diseno.Open;
             if Diseno.RecordCount>0 then
                Begin
                Diseno.Edit;
                DisenoDISENO.LoadFromFile(Archivo);
                Diseno.Post;
                Diseno.Transaction.CommitRetaining;
                End;
             End;
        Finally
          Campo.Free;
          Diseno.Close;
          Screen.Cursor:=crArrow;
          LockWindowUpdate(0);
          ShowMessage('El Archivo Fue Sincronizado ... Verifique ');
        End;
        End;
end;

Llamada:

Código Delphi [-]
Function TDataImpresion.BusFormato:Boolean;
Var
 Archivo,ArcBase:String;
 I,UltPos:Integer;
 Campo:TStream;
begin
  Result:=False;
  Try
  FormaReporte.Open;
  FormaReporte.First;
  if Not FormaReporteNOMARCHI.Isnull Then
     Begin
         Campo :=FormaReporte.CreateBlobStream(FormaReporte.FieldByName('DISENO'), bmRead);
  if Campo.Size<>0 then
     Begin
     Campo.Position := 0;
     Reporte.Clear;
     Reporte.LoadFromStream(Campo);
     Reporte.ReportOptions.Description.Add(ReportesNOMBREPO.Value);
     Result:=True;
     end;
  Finally
     ArcParent.Free;
     Campo.Free;
  End;
  FormaReporte.Close;
end;


La franja horaria es GMT +2. Ahora son las 23:47:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi