Siguiendo la ayuda que encontraste tendrías que hacer algo como esto:
1. En tu tabla
access, el campo que quieras para almacenar la foto debe ser de tipo "Object OLE"
2. En tu aplicación, enlaza un componente ADOTable (o Table o el que uses) a tu tabla
access.
3. En ese componente entra al editor de campos (doble clic sobre el componente) y agrega todos los campos (menú contextual|Add all fields).
4. Uno de estos campos corresponde al de la foto, se llamará algo así como ADOTable1Foto suponiendo que el campo de tu tabla
access se llama foto. Este campo, en el inspector de objetos podrás ver que es de tipo TBlobField.
5. Para poner datos en un camp BlobField usas su método LoadFromStream o LoadFromFile.
6. Para recuperar los datos de un campo BlobField usas su método SaveToStream o SaveToFile.
--------------
Ahora bien, analicemos cómo agregar una imagen y como recuperar una imagen.
Agregar una imagen
Aquí debes decidir si tomas la imagen desde un archivo en disco o si ya la tienes en un componente TImage en tu aplicación.
Si es lo primero, entonces puedes usar el método LoadFromFile del BlobField (lee arriba). Pero si es lo segundo, deberás usar un objeto Stream como intermediario:
Código Delphi
[-]
var
Stream: TMemoryStream;
begin
Stream := TMemoryStream.Create;
try
Image1.SaveToStream(Stream);
Stream.Position := 0;
ADOTable1Foto.LoadFromStream(Stream);
finally
Stream.Free;
end;
end;
Aquí estoy suponiendo que ya tienes preparado el registro donde poner la foto. Es decir, si es para un registro nuevo:
Y si era un registro ya existente:
una vez que te hayas colocado en el registro deseado.
Ya que tengas esto, procedes como ya sabes. Llenas los otros campos y ejecutas el método Post del ADOTable.
Recuperar una imagen
Para el paso inverso, mostrar en un componente Image, la imagen del registro actual, también necesitas un Stream de intermediario:
Código Delphi
[-]
var
Stream: TMemoryStream;
begin
Stream := TMemoryStream.Create;
try
ADOTable1Foto.SaveToStream(Stream);
Stream.Position := 0;
Image1.LoadFromStream(Stream);
finally
Stream.Free;
end;
end;
Espero que te haya quedado más claro, si no, consulta otra vez, pero dedícale un tiempo a intentar entender. He puesto el código como lo fui pensando, sin probar; así que es posible que haya uno que otro error.
// Saludos