我最近做了一个,SQL ,不过,我把图片单做个表,因为在修改图片的时候,是要删除整条信息,重新用插入的办法。 具体点的代码如下: var picture:Tpicture; begin if openpicturedialog1.FileName='' then begin showmessage('请选择照片!'); exit; picture:=Tpicture.Create; picture.LoadFromFile(extractfilename(openpicturedialog1.filename)); adoquery1.Insert;//插入 adoquery1.FieldByName('').AsString:=edit1.Text; adoquery1.FieldByName('').Assign(picture); adoquery1.Post;
“添加”程序 如下: begin adoquery1.FieldByName('设备名称').asstring:=combobox1.text; adoquery1.FieldByName('设备型号').asstring:=combobox2.text; adoquery1.FieldByName('设备产地').asstring:=combobox3.text; adoquery1.FieldByName('制造商').asstring:=combobox4.text; adoquery1.FieldByName('设备单价').asstring:=combobox5.text; adoquery1.FieldByName('设备来源').asstring:=combobox6.text; adoquery1.FieldByName('设备编号').asstring:=combobox7.text; adoquery1.FieldByName('领用科室').asstring:=combobox8.text; adoquery1.FieldByName('在用科室').asstring:=combobox9.text; adoquery1.FieldByName('入库日期').value:=formatdatetime('yyyy-mm-dd',datetimepicker1.Date ); TBlobField(ADOquery1DSDesigner11.FieldByName('设备图片')).LoadFromFile(openpicturedialog1.FileName); //注意这里必须是插入一个BMP类型的图片,如果换用JPG图片的话,代码写法不同。 adoquery1.Post ; adoquery1.Last ; with adoquery1 do begin close; sql.Clear ; sql.Add('select * from 设备信息录入 order by 设备名称,设备型号,设备产地,领用科室'); open; end; application.MessageBox('添加记录成功!','提示',64);
我以前写的语句是
ADOquery1DSDesigner11.loadfromfile(openpicturedialog1.FileName);
它不报错 但使其他的控件不能用
TBlobField(ADOquery1DSDesigner11.FieldByName('图片字段')).LoadFromFile(openpicturedialog1.FileName);
ADOquery1DSDesigner11.Post;
是从文件中读取ADO数据集的数据
我做的是“添加”程序 如下:
begin adoquery1.FieldByName('设备名称').asstring:=combobox1.text;
adoquery1.FieldByName('设备型号').asstring:=combobox2.text;
adoquery1.FieldByName('设备产地').asstring:=combobox3.text;
adoquery1.FieldByName('制造商').asstring:=combobox4.text;
adoquery1.FieldByName('设备单价').asstring:=combobox5.text;
adoquery1.FieldByName('设备来源').asstring:=combobox6.text;
adoquery1.FieldByName('设备编号').asstring:=combobox7.text;
adoquery1.FieldByName('领用科室').asstring:=combobox8.text;
adoquery1.FieldByName('在用科室').asstring:=combobox9.text;
adoquery1.FieldByName('入库日期').value:=formatdatetime('yyyy-mm-dd',datetimepicker1.Date );
TBlobField(ADOquery1DSDesigner11.FieldByName('设备图片')).LoadFromFile(openpicturedialog1.FileName);
adoquery1.Post ;
adoquery1.Last ; with adoquery1 do
begin
close;
sql.Clear ;
sql.Add('select * from 设备信息录入 order by 设备名称,设备型号,设备产地,领用科室');
open;
end;
application.MessageBox('添加记录成功!','提示',64);
具体点的代码如下:
var
picture:Tpicture;
begin
if openpicturedialog1.FileName='' then
begin
showmessage('请选择照片!');
exit;
picture:=Tpicture.Create;
picture.LoadFromFile(extractfilename(openpicturedialog1.filename));
adoquery1.Insert;//插入
adoquery1.FieldByName('').AsString:=edit1.Text;
adoquery1.FieldByName('').Assign(picture);
adoquery1.Post;
begin adoquery1.FieldByName('设备名称').asstring:=combobox1.text;
adoquery1.FieldByName('设备型号').asstring:=combobox2.text;
adoquery1.FieldByName('设备产地').asstring:=combobox3.text;
adoquery1.FieldByName('制造商').asstring:=combobox4.text;
adoquery1.FieldByName('设备单价').asstring:=combobox5.text;
adoquery1.FieldByName('设备来源').asstring:=combobox6.text;
adoquery1.FieldByName('设备编号').asstring:=combobox7.text;
adoquery1.FieldByName('领用科室').asstring:=combobox8.text;
adoquery1.FieldByName('在用科室').asstring:=combobox9.text;
adoquery1.FieldByName('入库日期').value:=formatdatetime('yyyy-mm-dd',datetimepicker1.Date );
TBlobField(ADOquery1DSDesigner11.FieldByName('设备图片')).LoadFromFile(openpicturedialog1.FileName); //注意这里必须是插入一个BMP类型的图片,如果换用JPG图片的话,代码写法不同。 adoquery1.Post ;
adoquery1.Last ;
with adoquery1 do
begin
close;
sql.Clear ;
sql.Add('select * from 设备信息录入 order by 设备名称,设备型号,设备产地,领用科室');
open;
end;
application.MessageBox('添加记录成功!','提示',64);