在问TQuery访问数据库图象字段的问题? (50分)

  • 主题发起人 主题发起人 yesye
  • 开始时间 开始时间
Y

yesye

Unregistered / Unconfirmed
GUEST, unregistred user!
各位好,上次问了一个使用TQuery操作数据库图象字段数据的问题,得到两个答案,好象我试用都
不行,不知道为什么?
我的图片是.jpg格式
Assign(image.picture.bitmap)好象只能是bmp图片
assign(image.picture.graphic)老出错,不知道什么原因?
我看过几个delphibbs里面的讨论,好象都没怎么讨论到我要实现的功能
按照最后一位的说法还是出错,信息如下:
Operation not applicable
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=654794有你要的答案。
 
procedure TFootForm.FootImageClick(Sender: TObject); // 打开并保存图象
var
tempStream:TMemoryStream;
JpgPic:TJpegImage;
S:String;
begin
if FootImage.Picture.Width=0 then
begin
if OpenDialog.Execute then
begin
S:=OpenDialog.FileName;
S:=UpperCase(Copy(S,Length(S)-2,3));
if S='JPG' then
begin
try
JpgPic:=TJpegImage.Create;
tempStream:=TMemoryStream.Create;
tempStream.Clear;
DataForm.cp1.Edit;
JpgPic.LoadFromFile(OpenDialog.FileName);
FootImage.Picture.bitmap.assign(JpgPic);
JpgPic.SaveToStream(tempStream);
TBlobField(DataForm.cp1.FieldByName('图象')).LoadFromStream(tempStream) ;
DataForm.cp1.Post;
finally
JpgPic.Free;
tempStream.Free;
end;
end;
end;
end;
end;

procedure TFootForm.FormShow(Sender: TObject); //显示图象
var
MyJpeg:TJpegImage;
MyStm:TMemoryStream;
begin
ShowFootInfo;

if not DataForm.cp1.FieldByName('图象').IsNull then
begin
try
MyJpeg:=TJpegImage.Create;
MyStm:=TMemoryStream.Create;
MyStm.Clear;
TBlobField(DataForm.cp1.FieldByName('图象')).SaveToStream(MyStm);
MyStm.Position:=0;
MyJpeg.LoadFromStream(MyStm);
FootImage.Picture.BitMap.Assign(MyJpeg);
finally
MyJpeg.Free;
MyStm.Free;
end;
end;
end;
 
对!就像楼上的兄弟所说的,用流的形式存入数据库!
 
后退
顶部