首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

有关图保存后查询出错的有关问题,请!TKS

2012-02-25 
有关图保存后查询出错的问题,请高手指点!TKS!procedure TFrGmInfoInput.btnfindClick(Sender: TObject)va

有关图保存后查询出错的问题,请高手指点!TKS!
procedure TFrGmInfoInput.btnfindClick(Sender: TObject);
var
  szname: string;
  stream: TMemoryStream;
  i: Integer;
  jpeg: TJPEGImage;
begin
  with qryimagefind do
  begin
  Close;
  SQL.Clear;
  SQL.Text := 'select logo from test ' +
  ' where type=''' + trim(edttype.Text) + '''';
  Open;
  end;
  if not qryimagefind.IsEmpty then
  begin
  try
  stream := TMemoryStream.Create;
  TBlobField(qryimagefind.FieldByName('logo')).SaveToStream(stream);
  stream.Position := 0;
  jpeg := TJPEGImage.Create;
  jpeg.LoadFromStream(stream);
  Image2.Picture.Assign(jpeg);
  finally
  jpeg.Free;
  stream.Free;
  end;
  end;
end;

以上是查询的代码,之前运行没有错误,现在提示"JPEG error #42",有点不懂.
但是如果按字段"type"更改某张图片后,又能查询,但重新打开界面输入字段内容查找却又提示如上的错误.
更新代码:

procedure TFrGmInfoInput.btnupdateClick(Sender: TObject);
var
  stream: TMemoryStream;
  jpeg: TJPEGImage;
begin
  try
  with tblimage2 do
  begin
  CommandText := 'update test set logo=:logo where type=''' + trim(edttype.Text) +
  '''';

  end;
  stream := TMemoryStream.Create;
  jpeg := TJPEGImage.Create;
  jpeg.Assign(Image1.Picture.Graphic);
  jpeg.SaveToStream(stream);
  stream.Position := 0;
  tblimage2.Parameters.ParamByName('logo').LoadFromStream(stream, ftBlob);
  tblimage2.Execute;
  ShowMessage('OK!');
  finally
  stream.Free;
  jpeg.Free;
  end;

end;

请高手们指点!万分感谢!



[解决办法]

Delphi(Pascal) code
图片保存到数据库的时候出现错误了,select logo from test where type='''+trim(edttype.Text)+''' 你必须确认你这条查询返回的是一张图片
[解决办法]
密切关注
我这种方法只能打开jpg格式的图片,向找个都行
procedure TForm1.BitBtn3Click(Sender: TObject);
var
jpeg:TJpegImage;
begin
jpeg:=Tjpegimage.Create;
adoquery1.Close;
adoquery1.SQL.Text:='select id,tupian from table2 where id=''1'' ';
adoquery1.Open;
Tblobfield(adoquery1.FieldByName('tupian')).SaveToFile('c:\com.jpg');
jpeg.LoadFromFile('c:\com.jpg');
image1.Picture.Assign(jpeg);
jpeg.Free;
end;

热点排行