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;请高手们指点!万分感谢!
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;请高手们指点!万分感谢!
解决方案 »
- 如何检测数组中的重复项?
- 关于mediaplayer控件display属性设置的问题
- 报表打印 sql语句怎么写
- Midas Socket服务端源码试用或出售
- 版主:这个系统有问题可以将分全给自己!!!!!快看!!!
- 大家看看这个东西该怎样实现
- delphi程式报错:Access violation at address 请高手帮忙!小弟感激不尽……
- 请哪位朋友给我讲一下delphi中 IN 的具体使用方法
- 讨论:单就数据库编程pb和delphi谁更优秀?
- 如何用代码实现修改98开始菜单里---程序----(xxxxx)里的,xxxx指的exe文件?
- 怎样使用用dbcombobox读取数据库的值?
- 如何在繁體操作系統的客戶端顯示存放在數據庫中的簡體中文?
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;