Ver Mensaje Individual
  #4  
Antiguo 18-03-2007
TJose TJose is offline
Miembro
 
Registrado: may 2003
Posts: 162
Reputación: 24
TJose Va por buen camino
Hola

dstDocumentacion es un TIBDataSet con un select que incluye el campo Documento

El ejemplo muestra como guardar y recuperar el documento (exportar - importar). Recuerdo haberlo probado con archivo muy grandes y funcionaba.

La definición del campo documento está dada por:

Código SQL [-]
CREATE DOMAIN DARCHIVOBINARIO AS
BLOB SUB_TYPE 0 SEGMENT SIZE 100;

Código:
void __fastcall TfrmPrincipal::aclImportarExecute(TObject *Sender)
{
   dlgAbrir->Filter = "Documentos de Word (*.doc)|*.DOC|Archivos RTF (*.rtf)|*.RTF|Archivos de texto (*.txt)|*.TXT|Todos los archivos (*.*)|*.*";
   if(dlgAbrir->Execute()){
      AnsiString Archivo;
      Archivo = dlgAbrir->FileName;
      TBlobField *Documento = (TBlobField *) datDocumentacion->dstDocumentacion->FieldByName("Documento");
      Documento->Clear();
      Documento->LoadFromFile(Archivo);
      edtArchivo->Text = ExtractFileName(Archivo);
   }   
}
//---------------------------------------------------------------------------

void __fastcall TfrmPrincipal::aclExportarExecute(TObject *Sender)
{
   dlgGuardar->Filter = "Documentos de Word (*.doc)|*.DOC|Archivos RTF (*.rtf)|*.RTF|Archivos de texto (*.txt)|*.TXT|Todos los archivos (*.*)|*.*";
   dlgGuardar->FileName = edtArchivo->Text;
   if(dlgGuardar->Execute()){
      AnsiString Archivo;
      Archivo = dlgGuardar->FileName;
      TBlobField *Documento = (TBlobField *) datDocumentacion->dstDocumentacion->FieldByName("Documento");
      Documento->SaveToFile(Archivo);
   }
}
//---------------------------------------------------------------------------
Saludos
TJose
Responder Con Cita