我使用的是是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什么原因呢?为什么?请大家指导。
你做的不对
要用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.