|
codigo para campos blob en oracle funcionando
Hola a tod@, creo este nuevo hilo esta vez no para preguntar sino para pasarles el codigo de como hacer para poder insertar y extraer campos blob de una tabla de oracle, usando ADO, ya que fue muy dificil de encontrar en internet.
aca esta el codigo:
procedure TForm.Button5Click(Sender: TObject);//para guardar en un campo blob un html
var
TF: TFileStream;
dir:string;
begin
dir:='c:\temporal.html';
TF := TFileStream.Create( dir, fmOpenRead );
table1.open;
Table1.insert;
// Cargar el campo Blob desde la corriente
TBlobField(Table1.FieldByName('ARCHIVO')).LoadFromStream(TF);//Stream);
Table1.FieldByName('ID_DOCUMENTO').Value:=1;
Table1.Post;
Tf.Free;
MessageDlg('Datos guardados',mtinformation,[mbOK],0);
table1.Close;
end;
Una aclaracion muy importante uso en el connectiostring del adoconnection Provider=OraOLEDB.Oracle.1
ya que es el unico que no me dio problemas el MSDAORA.1 no funciona al guardar mas de 4kb.
ahora para mostrarlo es mas simple solamente tienen que hacer esto:
table1.open;
table1.edit;
TBlobField(Table1.FieldByName('ARCHIVO')).SaveToFile(ExtractFilePath(Application.ExeName)+'temporal. html');
ShellExecute(FComp0Km.Handle, nil, pchar(ExtractFilePath(Application.ExeName)+'temporal.html'),nil, nil, SW_SHOWNORMAL);
Table1.Post;
table1.close;
aca guarda el archivo sacado del campo en un archivo temporal.html y luego ejecuta el internet explorer para verlo.
Saludos a todo y espero que le haya sido util
|