Access中图片字段类型为“OLE对象”当数据库里已经有记录时,但是图片字段为空,我要补一张图片在某个记录就要用到updat语句,那么怎么用ADOQuery往这个记录里写入图片,并怎么读出?
解决方案 »
- 程序模拟点击,和真实点击一样。给点源码最好。
- 如何实现不间断打印主从表(非分组报表问题)
- 在小城市搞软件有前途吗?望各位前辈多多指点!(本人大四毕业在即,想创业)
- 在线等待,一个关于串口通信的问题
- 请教Delphi的内存问题
- 主从关系牵扯到3张表,build treeview后,locate的数据显示有问题
- 如何在POPUPMENU中再右边添加一个竖着的标题栏!!!急!!!!(100)
- ---dbgrideh,在哪里有免费的下载?---
- 如何用DELPHI从ORACLE中动态导出DBF文件
- form1.show;和form1.showmodal有和区别?
- 有空余时间的不妨进来看看:)
- 高手请进,什么打印控件能够实现以下打印功能(分数可以再加)?
var
imagebmp:Timage;
imagejpg:Tjpegimage;
imageico:Ticon;
zhbl:Tbitmap;
lx:string;
image:Timage;
begin
imagebmp:=Timage.Create(nil);
imagejpg:=Tjpegimage.Create;
imageico:=Ticon.Create;
zhbl:=Tbitmap.Create;
image:=Timage.Create(nil);
image.Picture.LoadFromFile(picname);
image.Hint:=picname;
image.showhint:=true;
if image.Hint<>'' then
begin
lx:=ExtractFileExt(image.Hint);
if uppercase(lx)='.BMP' then
begin
imagebmp.Picture.Bitmap.LoadFromFile(image.Hint);
end;
if uppercase(lx)='.JPG' then
begin
imagejpg.LoadFromFile(image.Hint);
imagebmp.Picture.Bitmap.Assign(imagejpg);
end;
if uppercase(lx)='.ICO' then
begin
imageico.LoadFromFile(image.Hint);
zhbl.Width:=imageico.Width;
zhbl.Height:=imageico.Height;
zhbl.canvas.Draw(0,0,imageico);
end;
end;
try
if uppercase(lx)='.ICO' then
begin
dataset.Fields[zdxh].Assign(zhbl);
end
else
begin
dataset.Fields[zdxh].Assign(imagebmp.Picture);
end;
result:=true;
finally
imagebmp.Free;
imagejpg.Free;
imageico.Free;
zhbl.Free;
image.Free;
end;
end;
var fp_temp : file of byte;
begin
openpicturedialog1.Filter:='All (*.Jpg;*.Bmp)|*.jpg;*.bmp';
openpicturedialog1.FileName:='';
openpicturedialog1.Title:='选择图片';
openpicturedialog1.Execute;
if openpicturedialog1.FileName='' then exit;
AssignFile(fp_temp,openpicturedialog1.FileName);
Reset(fp_temp);
if filesize(fp_temp)>206000 then
begin
application.MessageBox('所选择的图片不能大于200K ','系统提示',MB_OK+MB_ICONINFORMATION);
CloseFile(fp_temp);
exit;
end;
CloseFile(fp_temp);
adoquery1.edit;
imagesavetosql(adoquery1,0,openpicturedialog1.FileName);
adoquery1.Post;
end;
begin
savedialog1.Filter:='All (*.Jpg;*.Bmp)|*.jpg;*.bmp';
savedialog1.FileName:='';
savedialog1.Execute;
if savedialog1.FileName<>'' then
DBimage1.Picture.SaveToFile(savedialog1.FileName+'.jpg');
end;
procedure TForm1.Button1Click(Sender: TObject);//保存
var
mystream : TMemoryStream;
begin
mystream := TMemoryStream.Create;
try
Image1.Picture.Graphic.SaveToStream(mystream);
mystream.Position := 0;
with ADOQuery1 do
begin
close;
open;
Append;
TBlobField(fieldbyname('pic')).LoadFromStream(mystream);
Post;
end;
finally
mystream.Free;
end;
end;
这里的好详细