看了这上面的帖子,都是一个模式,那就是
建立图片内存;
adoquery.append;
……
adoquery.post;
现在我的问题是使用access数据库,图片字段是ole对象,
表有这些字段:学号,姓名,性别,……,照片
使用sql语句写入数据库,insert into ……的方式,
谁知道,请帮一下忙,回一下帖子,谢谢!
建立图片内存;
adoquery.append;
……
adoquery.post;
现在我的问题是使用access数据库,图片字段是ole对象,
表有这些字段:学号,姓名,性别,……,照片
使用sql语句写入数据库,insert into ……的方式,
谁知道,请帮一下忙,回一下帖子,谢谢!
s:=TMemorystream.Create; //--创建一内存流对象
olecontainer1.SaveToStream(s); //---保存流
with ADOQuery do
Close;
SQL.Clear;
SQL.Add('insert into img (图纸编号,图纸照片,日期) VALUES (:tid,:cad,:dt)');
Parameters.ParamByName('tid').Value := trim(Edt_id.Text);
Parameters.ParamByName('cad').LoadFromStream(s,ftBlob);
Parameters.ParamByName('dt').Value := DDTP_date.Date;
Prepared;
ExecSQL;
s.Free;
//---图纸添加结束
s:TMemorystream;
with ADOQuery do
begin
s:=TMemorystream.Create; //--创建一内存流对象
olecontainer1.SaveToStream(s); //---保存流
Close;
SQL.Clear;
SQL.Add('insert into stud (学号,照片,姓名) VALUES (:tid,:cad,:dt)');
Parameters.ParamByName('tid').Value := trim(Edt_id.Text);
Parameters.ParamByName('cad').LoadFromStream(s,ftBlob);
Parameters.ParamByName('dt').Value := edtName.text;
Prepared;
try
ExecSQL;
finally
s.Free;
end;
end;
//---图纸添加结束
TBlobField(ADOQuery.FieldByName('Photo')).LoadFromFile(ls_zp);
s:=TMemorystream.Create; //--创建一内存流对象
olecontainer1.SaveToStream(s);
这里面的图片来源是什么呢?
另外我想要的是直接写成纯的sql语句,意思就是先生成纯sql语句,
然后再将这个sql语句传递给query的sql属性,然后执行。