| 发表于:2007-09-24 11:57:213楼 得分:5 |
var stream:tmemorystream; jpg:tjpegimage; begin try adoquery2.close; adoquery2.sql.clear; adoquery2.sql.add(''); adoquery2.open; if not adoquery2.fieldbyname('pic').isnull then begin if adoquery2.fieldbyname('pic_type').asinteger = 2 then begin try stream:=tmemorystream.create; jpg:=tjpegimage.create; tblobfield(adoquery2.fieldbyname('pic')).savetostream(stream); // 显示的转换为blobfield并保存到内存流 stream.position :=0; jpg.loadfromstream(stream); image1.picture.assign(jpg); finally stream.free; jpg.free; end; end else if adoquery2.fieldbyname('pic_type').asinteger = 1 then begin image1.picture.bitmap.assign(adoquery2.fieldbyname('pic')); end else begin image1.picture := nil; end; end else begin image1.picture := nil; end; except common.infomessage('提取图片数据失败!'); exit; end; var stream:tmemorystream; ext:string; pictype: integer; begin try try ext:=extractfileext(openpicturedialog1.filename); if ext = '' then exit; if uppercase(ext) ='.bmp' then begin pictype := 1; end else if (uppercase(ext) = '.jpeg') or (uppercase(ext) = '.jpg') then begin pictype := 2; end; stream := tmemorystream.create; image1.picture.graphic.savetostream(stream); adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add('update member set pic =:pic,pic_type =:pictype where ---'); adoquery1.parameters.parambyname('pic').loadfromstream(stream,ftblob); adoquery1.parameters.parambyname('pictype').value := pictype; adoquery1.EXECsql; finally stream.free; end; except infomessage('保存图片失败!'); exit; end; 给你个现成的,我的数据库是sql | | |
|