大虾帮看看-----------------JPEG error #42 !! [高散分]
平台是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;