我使用的是是access数据库
'平面图' 字段的数据类型为:OLE 对象
procedureTform1.Savebtnclick(sender:Tobject);
var
graphic1:Tgraphic;
  begin
graphic1:=Tgraphic.Create;
 graphic1.loadfromfile(opendialog1.filename);
  table1.insert;
  table1.fieldbyname(’name’).asstring:=edit1.text;
  table1.fieldbyname(’telephon’).asstring:=edit2.text;
  table1.fieldbyname(’address’).asfloat:=edit3.text;
  table1.fieldbyname(’zip’).asfloat:=edit4.text;
  table1.fields[4].assign(graphic1);
  table1.post;
  graphic1.free;
end;
执行应用程序插入图像后提示
Abstract error什么原因呢?为什么?请大家指导。

解决方案 »

  1.   

    我有图片的例子
    你做的不对
    要用steam操作,我这个是保存excel的例子,你把扩展名换成你想要保存的文件就ok了
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, DBTables;
     
    type
      TForm1 = class(TForm)
        Database1: TDatabase;
        Query1: TQuery;
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        No : Integer;
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      S : TStream;
    begin
      S := TFileStream.Create('C:\WINDOWS\DESKTOP\设备描述表(中).xls', fmOpenRead);
      try
        Inc(No);
        with Query1 do
          begin
          SQL.Text := 'INSERT INTO TEST(A, B) VALUES(:A, :B)';
          ParamByName('A').AsInteger := No;
          ParamByName('B').LoadFromStream(S, ftBlob);
          ExecSQL;
          end;
      finally
        S.Free;
      end;
    end;
     
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      with Query1 do
        begin
        SQL.Text := 'SELECT A, B FROM TEST';
        Open;
        TBlobField(FieldByName('B')).SaveToFile('C:\WINDOWS\DESKTOP\设备描述表(中)11.xls');
        Close;
        end;
    end;
     
    end.