Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-03-2008
fonx fonx is offline
Miembro
 
Registrado: feb 2007
Posts: 54
Poder: 18
fonx Va por buen camino
Guardar imagen en base de datos Access

Hola chicos/as por aquí ando de nuevo. Llevo peinando el blog y el google durante todo el día de ayer y hoy porque intento guardar en una base de datos access imágenes. Pero quiero hacerlo como un filestream, no como una imagen bmp en sí ya que esto último guarda la imagen en bmp más otra estructura con lo que el tamaño de la base de datos aumenta muchísimo. Aparte de que las imágenes no serán en bmp.

Uso Delphi 5

He probado varias formas que no han dado resultado:

Código:
query:=TADOQuery.create(Self);
query.connection:=AC1;
query.SQL.text:='Select Fotografia1 from visitas'; //Fotografia1 es de tipo Objeto OLE 
query.active:=true;
query.Edit;
query.LoadFromFile(OpenDialog.FileName);
query.Post;
Esto compila pero al ejecutar el load me dice que "no se puede crear el Recordset desde el origen especificado. El archivo o la secuencia de origen deben contener datos REcordset en formato XML o ADTG"

Código:
Image1 := TImage.Create(Self);
Image1.Picture.LoadFromFile(PATH_IMG+'\logoInforme.bmp');
comm:=TADOCommand.Create(Self);
comm.connection:=AC1;
comm.CommandText:= 'UPDATE visitas SET Fotografia1=:fichero WHERE NVisita='+IntToStr(numVisita);
comm.Parameters.ParamByName('fichero').value:= Variant(Image1);
comm.Execute;
Compilador:Invalid typecast, y sin el cast tipos incompatibles Variant e Image

Lo mismo cambiando el TImage por

Código:
fStream:=TFileStream.Create(OpenDialog.FileName,fmOpenRead);
tbf:=TBlobField.Create(Self);
tbf.LoadFromStream(fStream);
A ver si iniciamos una tormenta de ideas...¿A que estructura podría pasar el filestream para intentar algo? Gracias de antemano
Responder Con Cita
  #2  
Antiguo 28-03-2008
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Una forma puede ser:

http://www.clubdelphi.com/foros/show...25&postcount=4

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 31-03-2008
fonx fonx is offline
Miembro
 
Registrado: feb 2007
Posts: 54
Poder: 18
fonx Va por buen camino
Hola, gracias por ese apunte , basándome en tu código parece que lo conseguí, las instrucciones se ejecutaron bien y la base de datos creció en tamaño. Además el access indica que en el campo OLE object hay datos binarios. El código al final me quedó así:

Código:
query:=TADOQuery.create(Self);
query.connection:=AC1;
query.SQL.text:='Select * from visitas WHERE NVisita='+IntToStr(numVisita);
query.active:=true;
query.edit;
TBlobField( query.FieldByName('Fotografia1') ).LoadFromStream( fStream );
query.Post;
fStream.Free;
query.free;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Imagen JPG en una base de datos Access edus1984 Conexión con bases de datos 7 08-05-2007 01:52:10
Guardar Datos de una bd access a una firebird day_eli Conexión con bases de datos 1 08-02-2007 23:47:04
Guardar en 1 base de datos SQL, datos procedentes de 2 tablas distintas adaypr C++ Builder 1 05-09-2006 11:56:33
Guardar una archivo de imagen (bmp,jpg..etc), en la base de datos cahosoft Firebird e Interbase 4 31-07-2004 16:53:56
Guardar imagen jpg en access¡¡ perrogrun Conexión con bases de datos 0 03-03-2004 12:44:04


La franja horaria es GMT +2. Ahora son las 00:24:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi