hola amigos yo se que muchos tal ves se molesten y digan que busque en los hilos pero en verdad que estuve buscando y no encontre mucho que me pueda ayudar o mas bien, me falta un poco de conocimiento, asi que recurro a ustedes, lo que quiero hacer es subir un archivo a una base de datos que es postgre(<-no se espanten no es cosa del otro mundo) digamos que en vez de postgre dije mysql el procedimiento es similar(muchos temen al coco postgre), tengo delphi2006, tengo un tdatabase y un tquery se insertar informacion a la base de datos, lo que no me queda claro es como insertar el archivo en el campo tipo blob, cuando digo el archivo puede ser de diferentes tipos, pdf,doc,ppt,xls, etc.
En teoria cuando doy click en el boton ,se abre el opendialog y selecciono el archivo que se pretende subir a la base de datos, la base de datos se llama "basedatosprueba" y la tabla adonde van los archivos se llama "tabla_prueba", esta tiene tres campos que son, llave(integer),nombre(character) y archivoblob(blob)
este es parte del codigo que utilizo, lo que no se es como insertar el archivo dentro del campo, puedo insertar en los demas campos informacion pero el archivo en el blob no, seria de mucha ayuda si alguien me explicara un poco como es que se hace,
Código Delphi
[-]
procedure TFrmenuu.BitBtn1Click(Sender: TObject);
var
blob:TStream;
fs:tstream;
begin
if OpenDialog.Execute then
begin
Olecontainer1.CreateObjectFromFile(PChar(OpenDialog.FileName),false);
vertbar.max:= Olecontainer1.Height;
horzbar.max:= Olecontainer1.Height;
Panelcontenedor.Visible:=true;
Querygestion.Close;
Querygestion.SQL.Clear;
Querygestion.SQL.Add('insert into tabla_prueba(llave,nombre,archivoblob) values(006,'1',blob)');
Querygestion.ExecSQL;
Querygestion.Open;
showmessage('agregado');
blob := Querygestion.CreateBlobStream(Querygestion.FieldByName('archivoblob'),bmWrite);
try
blob.Seek(0, soFromBeginning);
fs := TFileStream.Create(OpenDialog.FileName, fmOpenRead or fmShareDenyWrite);
try
blob.CopyFrom(fs, fs.Size)
finally
fs.Free
end;
finally
blob.Free
end;
end;
end;
Les agradezco su atencion y su ayuda, cualquier duda o sugerencia es bienvenida
