我用以下的方法实现了存图片
adoquery.SQL.Add('update t1 set pic=:pic where id=1');
adoquery.Parameters.ParamByName('pic').LoadFromStream(strm,ftBlob);
但是取图片……
form1.ADOQuery.SQL.Add('select * from t1 where pic=:pic and id=1');
buf.Position:=0;
TBlobField(ADOQuery.Parameters.ParamByName('pic')).SaveToStream(buf);
这样运行会报内存错?
所报的错误是:Access violation at address 00000000.read of address 00000000.
网上找了很多资料,没有结果,看很多人都是用ADOTable来做。
adoquery怎么实现?
adoquery.SQL.Add('update t1 set pic=:pic where id=1');
adoquery.Parameters.ParamByName('pic').LoadFromStream(strm,ftBlob);
但是取图片……
form1.ADOQuery.SQL.Add('select * from t1 where pic=:pic and id=1');
buf.Position:=0;
TBlobField(ADOQuery.Parameters.ParamByName('pic')).SaveToStream(buf);
这样运行会报内存错?
所报的错误是:Access violation at address 00000000.read of address 00000000.
网上找了很多资料,没有结果,看很多人都是用ADOTable来做。
adoquery怎么实现?
解决方案 »
- 起名 汪姓 女孩 非诚勿进
- 想实现光标移到label1上,label1的颜色为红,移开为白,,,,,,
- 请问大家公式解析器UDIPascalEngine组件
- 如何清除Access数据库中OLE中的图片》?
- Delphi 有单元测试的插件吗?
- 如何解决这个问题??
- 用过Dev Express控件的朋友请进~
- 用SQL語句怎樣查詢表中編號字段(BH)第三個字母為"A"的記錄?
- 这个sql查询语句怎么写?
- 能否实现dbgrid中的某一范围内的数据统一显示为‘**’
- 如何用ado读取mysql中的longtext字段,并保存到文件中?
- class tspeedbutton not found错误提示原因
var
SqlStr: string;
Stream: TMemoryStream;
Jpeg: TJpegImage;
begin
SqlStr :='INSERT INTO Photo(Image) VALUES (:ImageBin)',
try
try
Stream := TMemoryStream.Create;
Jpeg := TJPEGImage.Create;
Jpeg.Assign(Img.Picture.Graphic);
Jpeg.SaveToStream(Stream);
Stream.Position := 0;
AdoQuery.Close;
AdoQuery.SQL.Text := SqlStr;
AdoQuery.Parameters.ParamByName('ImageBin').LoadFromStream(Stream, ftBlob);
AdoQuery.ExecSQL;
Result := true;
except
on E: Exception do
MessageBox(Handle, PChar(E.Message), '提示', $40);
end;
finally
Stream.Free;
Jpeg.Free;
end;
end;
function TfrmDeviceImage.Read(Img:TImage): Boolean;
var
SqlStr: string;
szName: string;
Stream: TMemoryStream;
Jpeg: TJpegImage;
i: Integer;
begin
Result := false;
SqlStr := 'SELECT TOP 1 * FROM Photo';
with AdoQuery do
begin
try
Close;
SQL.Text:=SqlStr;
Open
except
end;
if not IsEmpty then
begin
try
Stream := TMemoryStream.Create;
TBlobField(FieldByName('Data')).SaveToStream(Stream);
Stream.Position := 0;
Jpeg := TJpegImage.Create;
Jpeg.LoadFromStream(Stream);
Img.Picture.Assign(Jpeg);
finally
Stream.Free;
Jpeg.Free;
end;
end;
end;
end;
如果有像我这样的初学者再看这帖子,请注意,此方法不适用存BMP,jpg与jpeg没有问题。
给分!结贴!