如何向SQL数据库中写入图形,图象数据,能够保存住。(10分)

  • 主题发起人 主题发起人 qinjlin76
  • 开始时间 开始时间
Q

qinjlin76

Unregistered / Unconfirmed
GUEST, unregistred user!
DBImage1.picture.loadfromfile(opendialogpicture.filename);?
adoquery.edit?
adoquery.post?

请修改!
 
老兄,你试下.你的语句肯定会提示:要你设置Bold字段的长度[:(][:)]
 
adoquery.edit;
(adoquery.FieldByName('图象字段名') as TBlobField).LoadFromFile('文件名');
adoquery.post;
 
这样呢:tbitmap.loadFromFile,贴到粘贴板上,再贴到字段里。
 
建议你写图片是不要用dbimage,用wzgss的方法好
tb:Tbitmap

bt:=Tbitmap.create;
bt.loadfromfile();
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into receive_pic ("bianhao","pic","pic_id","pic_dushuo") values (:bianhao,:pic,:pic_id,:pic_dushuo)');
adoquery1.Parameters.ParamByName('bianhao').Value:=mano+1;
adoquery1.parameters.ParamByName('pic').Assign(bt);//主要是这一句
adoquery1.Parameters.ParamByName('pic_id').Value:=strtoint(edit1.Text);
adoquery1.Parameters.ParamByName('pic_dushuo').Value:=strtoint(edit2.Text);
adoquery1.ExecSQL;

.....
bt.free;
 
user jpeg;

procedure Tf_position.btn_loadpicClick(Sender: TObject);
var
i:tbitmap;
j:tjpegimage;
begin
i:=tbitmap.Create;
j:=tjpegimage.Create;
if openpicturedialog1.Execute then
begin
if uppercase(extractfileext(openpicturedialog1.FileName))='.JPG' then
begin
j.LoadFromFile(openpicturedialog1.FileName);
i.Assign(j);
end
else if uppercase(extractfileext(openpicturedialog1.FileName))='.BMP' then
begin
i.LoadFromFile(openpicturedialog1.FileName);
end
else
begin
application.MessageBox('格式错误!',pchar(application.Title),mb_ok+mb_iconinformation);
end;
end;
if not(adoquery1.State in [dsedit,dsinsert]) then adoquery1.Edit;
adoquery1.Fields[3].assign(i);
//或者用tblobfield(adoquery1.fieldvalue[image']).assign(i);
adoquery1.post;
i.Free;
j.Free;
end;
 
后退
顶部