平台是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;
刚从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;
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;