Hola
No entiendo la necesidad de un query si solo se va y actualiza un campo, que mas da ?.
Revisa este:
Código Delphi
[-]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, DB, ADODB, DBCtrls, ExtDlgs;
type
TForm1 = class(TForm)
Button2: TButton;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DBNavigator1: TDBNavigator;
DataSource1: TDataSource;
OpenPictureDialog1: TOpenPictureDialog;
Button3: TButton;
Image2: TImage;
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
procedure Button3Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses jpeg;
var jpg: TJPEGImage;
procedure TForm1.FormCreate(Sender: TObject);
Var BaseDeDatos, ConStr : String;
begin
BaseDeDatos := ExtractFilePath(Application.ExeName)+'xxx.MDB';
If BasedeDatos = '' then ShowMessage('Error al cargar Base de Datos');
ConStr := 'Provider=Microsoft.Jet.OLEDB.4.0;'+
'Data Source='+BaseDeDatos+';'+
'Persist Security Info=False;'+
'Jet OLEDBatabase Password=admin';
ADOConnection1.ConnectionString := ConStr;
ADOConnection1.Open;
jpg := TJPEGImage.Create;
end;
procedure TForm1.Button2Click(Sender: TObject);
var Stream: TStream;
begin
ADOTable1.Open; ADOTable1.Last; Stream := ADOTable1.CreateBlobStream(ADOTable1.FieldByName('photo'), bmRead); jpg.LoadFromStream(Stream); Stream.Destroy; Image2.Picture.Assign(jpg);
end;
procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
var Stream: TStream;
begin
Stream := ADOTable1.CreateBlobStream(ADOTable1.FieldByName('photo'), bmRead); jpg.LoadFromStream(Stream); Stream.Destroy; Image2.Picture.Assign(jpg);
end;
procedure TForm1.Button3Click(Sender: TObject);
var bmp: TBitmap; Stream: TStream;
begin
if not OpenPictureDialog1.Execute then Exit;
jpg.LoadFromFile(OpenPictureDialog1.FileName);
ADOTable1.Open; ADOTable1.Insert; Stream := ADOTable1.CreateBlobStream(ADOTable1.FieldByName('photo'), bmWrite); jpg.SaveToStream(Stream); Stream.Destroy; ADOTable1.Post;
end;
end.
Saludos