Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Grabar una imagen en una base de datos access

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Grabar una imagen en una base de datos access Responder citando

Buenas a todos, me gustaría saber, si se puede, como puedo grabar una foto bmp/jpg en una tabla de access de office 2003 y que tipo de campo debería asignarle.
Utilizo los componentes TDataSource, TQuery con la propiedad requestlive=true, un dbgrid.

En definitiva como podría grabarlos, exportar las imagenes, guardarlas en una carpeta, copiar en el portapapeles, etc....

Gracias de antemano.

Un Saludo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

MarioMarieti escribió:
que tipo de campo debería asignarle.
Utilizo los componentes TDataSource, TQuery con la propiedad requestlive=true, un dbgrid

El tipo de campo: LONGBINARY (Datos binarios largos), Objeto OLE.

MarioMarieti escribió:
En definitiva como podría grabarlos

- Añadir un registro con una imagen:
Código:
    Query1->Append();
    Query1->FieldValues["Nombre"] = "Esto es una prueba";

TBlobField* blob = static_cast<TBlobField*>(Query1->FieldByName("Foto"));
blob->LoadFromFile("c:\\miDir\\imagen.jpg");

    Query1->Post();


MarioMarieti escribió:
exportar las imagenes, guardarlas en una carpeta

- Guardar la imagen del registro actual a disco:
Código:
TBlobField* blob = static_cast<TBlobField*>(Query1->FieldByName("Foto"));
if (!blob->IsNull)
    blob->SaveToFile("c:\\miDir\\imagen.jpg");
else
    ShowMessage("No contiene nada");


MarioMarieti escribió:
copiar en el portapapeles

- Copiar la imagen del registro actual al portapapeles:
Código:
//Añadimos: #include<memory>  #include<jpeg.hpp>  #include<clipbrd.hpp>

TBlobField* blob = static_cast<TBlobField*>(Query1->FieldByName("Foto"));
if (!blob->IsNull)
{
    std::auto_ptr<TJPEGImage> img(new TJPEGImage);
      // Usar la linea siguiente para BMP en vez de JPEG
      // std::auto_ptr<Graphics::TBitmap> img(new Graphics::TBitmap);
    std::auto_ptr<TBlobStream> mem(new TBlobStream(blob, bmRead));
    img->LoadFromStream(mem.get());
    Clipboard()->Assign(img.get());
}
else
    ShowMessage("No contiene imagen");
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.