Ver Mensaje Individual
  #1  
Antiguo 24-12-2010
Avatar de chip01
chip01 chip01 is offline
Registrado
 
Registrado: dic 2007
Posts: 6
Reputación: 0
chip01 Va por buen camino
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
Responder Con Cita