delphi与SQL2000的图片读取
在一张goods表中有产品名称,规格,图片路径等字段,已经把图片的路径保存到goods表中,请问怎么样才能查询goods表时,查出的记录双击或是怎么样可以直接打开图片路径这个字段相对应的图片,谢谢
[解决办法]
不知是什么格式的图片
bmp, jpeg格式的用TImage这个控件加载就可以了。
[解决办法]
我发段代码给你.这是不管什么格式的只要你 Uses 上图片单元.如 uses jpeg
if Not OpenpictureDialog1.Execute then Exit;
ADotable1.Edit;
DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
DBImage1.CopyToClipboard;
DBIMage1.PasteFromClipboard;
Adotable1.Post;
[解决办法]
直接把图片存储到数据库中更方便:
将sqlserver2000中的照片显示到image中
var
memStream:TmemoryStream;
Jpg:TJpegImage;
begin
//以下使照片与表格中的信息对应
if fieldbyname(''zp'').IsNull then //照片判空写法
image1.Picture.LoadFromFile(extractfilepath(application.ExeName)+''\photo\pic.jpg'')
else begin //有照片直接把照片从数据库读出来
memStream:=TmemoryStream.Create;
jpg:=Tjpegimage.Create;
Tblobfield(fieldbyname(''zp'')).SaveToStream(memstream);
memstream.Position:=0;
jpg.LoadFromStream(memstream);
image1.Picture.Assign(jpg);
end;
end;
将image中的内容存入到sql server2000中
procedure Taddform.BitBtn1Click(Sender: TObject);
var
memstream:tmemorystream;
jpg:tjpegimage;
begin
try
with t_data.ADOQuery1 do
begin
edit;
memStream:=TmemoryStream.create;
jpg:=Tjpegimage.Create;
jPg.Assign(image1.picture.Graphic);
jpg.SaveToStream(memstream);
memstream.Position:=0;
tblobfield(fieldbyname(''zp'')).LoadFromStream(memstream);
post;
application.MessageBox(''保存成功'',''提示'',64);
end;
except
application.messagebox(''保存失败!'',''提示'',64);
end;
end;
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gch_519/archive/2009/11/15/4813277.aspx
[解决办法]
用数据流把图片存储到数据库中,这样读取比较方便。
[解决办法]
代码供你参考:
存储图片
- Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject);var ms: TMemoryStream; jpg: TJpegImage;begin ms := TMemoryStream.Create; jpg := TJpegImage.Create; if dlgOpen1.Execute then img1.Picture.LoadFromFile(dlgOpen1.FileName); try if img1.Picture.Graphic<>nil then begin //try img1.Picture.Graphic.SaveToStream(ms); //判断图片大小,如果图片太大则不允许 if ms.Size >1024*500 then showmessage('图片太大不允许') else //提交图片 begin qry1.Append; TBlobField(qry1.FieldByName('pic')).LoadFromStream(ms); qry1.Post; end; end; finally jpg.Free; ms.Free; end;end;
[解决办法]
读出图片:
- Delphi(Pascal) code
begin try if qry1.FieldByName('pic').AsVariant <> '' then begin TBlobField(qry1.FieldByName('pic')).SaveToFile(MyPath + 'cul.jpg'); img1.Picture.LoadFromFile(MyPath + 'cul.jpg'); end; except ; end;end;