Buen día, jóvenes delphineros:
Les platico mi problema. El usuario para el que estoy programando desea, más bien, exige poder guardar una serie de archivos *.PDF en varios registros de una tabla de MS SQL Server 2008 R2 (
el campo definido como binary), por que desea mostrarlos en una
miniatura y tenerlos siempre a mano. Yo estoy plenamente consciente que guardar ésos archivos convertiría la base de datos en un monstruo, pero así lo quieren.
Estuve haciendo una primera aproximación a cómo debería ser el guardado de los datos, pero obviamente no funciona y es donde yo recurro a la sabiduría compartida del grupo, para que me asesoren y/o colaboren en la solución de ésta tarea.
Código Delphi
[-]procedure TfrmContenedor.btnImportarClick(Sender: TObject);
var
sNombreArchivo : string;
fsPDF : TStream;
bfCampo : TBlobField;
begin
sNombreArchivo := '';
with dlgAbrirArchivo do
begin
InitialDir := ExtractFilePath(Application.ExeName);
Filter := 'Archivos de Adobe Acrobat (*.pdf)|*.PDF';
Title := 'Buscar archivos de documentos para el paciente.';
DefaultExt := '*.pdf';
if Execute then
sNombreArchivo := FileName;
end;
if sNombreArchivo <> '' then
begin
fsPDF := TFileStream.Create(sNombreArchivo,fmOpenRead);
bfCampo := TBlobField.Create(Self);
with tblPDFs do
begin
fsPDF.Read(bfCampo,fsPDF.Size);
Connection := qryDocumentos.Connection;
TableName := 'HY11_DocumentosPacElec';
Open;
try
Insert;
strngfldPDFsE2_CTRL_PAC.Value := lblExpediente.Caption;
intgrfldPDFsC42_Documento_ID.Value := StrToInt(Texto2ID(chklstDocumentos.Items.Strings[chklstDocumentos.ItemIndex]));
bytsfldPDFsHY11_DocumentoElectronico.GetData(bfCampo);
Post;
finally
Close;
end;
end;
fsPDF.Destroy;
bfCampo.Destroy;
end;
end;
Nuevamente, se requiere necesariamente que el archivo sea guardado en una tabla. Acepto cualquier tipo de ayuda, hasta apoyo moral.
De antemano, gracias.