PDA

Ver la Versión Completa : Insertar Imagen en Registro de Access


Saiyan
21-08-2007, 16:44:44
Hola:

estoy investigando la insercion de una imagen en un campo de un registro en una tabla de Access con Delphi 7 con los componentes ADO.

He buscado en el Foro y he leido un par de soluciones, pero bastante largas y mediante implementación de:
TADOBlobStream
TMemoryStream
Posiciones hexa de memoria, etc
y similares


No hay manera de capturar la imagen en una variable y
hacer la insercion en la sentencia SQL de Insert?

Ej:
INSERT INTO Tabla (Nombre,Apellido,Foto) VALUES (:Nombre,
:Apel, :Foto)

y pasarle como parametro con
ParamsByName('Foto').value := varFoto;

hm?
o es necesario hacerlo mediante los streams de
memoria, blobs, etc??

Gracias desde ya
Saludos

PD: quiero almacenar la imagen fisicamente en la base, no la ruta.

Paoti
21-08-2007, 17:07:36
Hola sayan,


Prueba hacerlo de la forma "dificil", es muy fácil, puedes meterla en un procedimiento...

porque no se puede hacer de la froma que tu dices.

porque no hay algo parecido a:

FieldByname('CampoFoto').asJPG := loadfromfile('ruta\archivo.jpg');

busca en el histórico del foro, ya hay temas tratados así, incluso, yo en su momento tuve la misma duda y aqui en el foro me ayudarón.

Saiyan
21-08-2007, 17:20:13
OK, esperaba que haya alguna manera, pero supongo que no, puesto que almacena fisicamente y debe ir pasando de a streams...

pero bueno, ire leyendo e interpretando los procedimientos que ofrecen.

Muchas Gracias.
Saludos

fjcg02
21-08-2007, 20:42:14
A ver si te vale.
Yo edito una tabla, es decir, tengo un TADOTable, pongo en el formulario un dbimage asociado al campo de la imagen, pongo un boton con este código y me carga la imagen en el campo de la tabla.

Espero que te valga.

Saludos

procedure TFormSubclases.BitBtn1Click(Sender: TObject);
begin
with TOpendialog.Create(nil) do
try
Filter:= 'Archivos de imagen|*.bmp;*.ico;*.jpg';
if Execute then
begin
TablaSubclases.Edit;
DBImage1.Picture.LoadFromFile(Filename);
end;
finally
Free;
end;
end;

Saiyan
22-08-2007, 13:40:59
Pruebo y te aviso que pasó..

Saiyan
22-08-2007, 14:02:00
pongo en el formulario un dbimage asociado al campo de la imagen

No estoy familiarizado con el uso del componente ADOTable, manejo el SQL via tablas de la base de datos directamente.

Como asocias un DBImage a un campo del componente de los AdoTables?

fjcg02
22-08-2007, 17:10:15
Por ejemplo,
tiras un adotable y un datasource en el formulario, al datasource le asocias el adotable, le das al adotable nombre de la bbdd, seleccionas la tabla, le das doble click al adotable, añades todos los campos, tiras un dbimage, en ese dbimage seleccionas el datasource y el campo y ya está.

Espero que lo entiendas .

Saludos

Saiyan
22-08-2007, 17:27:52
Ahh, je.. no sabia que se le podia asociar un datasource al adotable.. como te dije no he usado adotables..

Muchas gracias, pruebo el codigo y luego te comento como anduve


Saludos