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