大虾帮看看-----------------JPEG error #42 !! [高散分]

cowbosky 2007-11-01 06:29:14
平台是Delphi + MySQL...
刚从MS SQL上移植过来的,之前没发现这个问题...

现象:
保存时,显示成功,但图片好像没存进去..
显示时,提示#42的错误...

如何解决?大虾帮看看.....谢了..


----------------------------------------------------------------------->>


//数据结构

Field Type Null Key Default Extra
--------------------------------------------------
IID bigint(20) NO MUL auto_increment
Photo longblob YES
class varchar(50) YES
Pcode varchar(50) YES


//保存JPG图片
procedure TUpIMGForm.Button2Click(Sender: TObject);
var
Ms:TMemoryStream;
begin
ExeSql('delete from pic where pcode='''+pcode+''' ');
BlobTab.Connection:=DataM.conn;
try
ms := TMemoryStream.Create;
image1.Picture.Bitmap.SaveToStream(ms);
ms.Position := 0;

//打开数据表并添加一条记录
BlobTab.Open;
BlobTab.Append;
BlobTab.FieldByName('Pcode').AsString:=pcode;
BlobTab.FieldByName('Class').AsString:=GetFileExt(trim(edit1.Text));
TBlobField(BlobTab.FieldByName('Photo')).LoadFromStream(ms);
BlobTab.Post;

ShowMessage( '保存上传图片成功! ');
UpIMGForm.Close;

finally
MS.Free; //释放内存流
end;

end;


//显示图形
procedure TEquEditForm.TabSheet3Show(Sender: TObject);
var
mStream:TMemoryStream;
JpgFile:TjpegImage;
begin
Image1.Picture.Graphic:=nil;
with DataM.q7 do
begin
sql.Clear;
sql.Add('select Photo from Pic where Pcode='''+Trim(Edit1.Text)+''' ');
Open;
if RecordCount>0 then
begin
try
mStream:=TMemoryStream.Create ;
Image1.Picture.Graphic:=TjpegImage.Create ;
TBlobField(FieldByName('photo')).SaveToStream(mStream); //顯示的轉換為BlobFiled並保存至內存流
mStream.Position :=0;
Image1.Picture.Graphic.LoadFromStream(MStream);
finally
mStream.Free;
end;


end;
end;
end;
...全文
546 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ggltechggl 2007-11-05
  • 打赏
  • 举报
回复

可能圖形文件有問題,也就是說這個圖片文件損壞了。

cowbosky 2007-11-05
  • 打赏
  • 举报
回复
dd
oushengfen 2007-11-02
  • 打赏
  • 举报
回复
budded 正解。
budded 2007-11-02
  • 打赏
  • 举报
回复
var
Stream: TResourceStream;
FJpeg: TJPEGImage;
begin
Stream := TResourceStream.Create(HInstance, 'J', 'JPEG'); // 这里换成你的 TMemoryStream
try
FJpeg := TJPEGImage.Create();
try
FJpeg.LoadFromStream(Stream); // 加载数据流
Image1.Picture.Bitmap.Assign(FJpeg); // 加载到GUI
finally
FJpeg.Free;
end;
finally
Stream.Free;
end;
end;

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧