数据库:Access2000
表 :kaoti
字段 :image----ole对象1.不知道image字段里图的格式(库是客户提供的,不能更改,曾问图的格式说是windows预览图格式...晕),如何用ADO查询并在窗体上得出。
2.向Access中插入二进制数据后是不是数据本身就已经修改了,以致读取的时候报错?
3.假如我只想把图片的路径保存到数据库中,该如何存?现在紧要的是问题1的解决方法,一旦解决,马上补分
附代码 请大师们帮忙!uses jpeg; //不知图的格式,且试试procedure TFrm_Drill.FormShow(Sender: TObject);
var
MyJPEG: TJPEGImage;
MS: TMemoryStream;
begin
with TADOQuery(dsDetail.DataSet) do
begin
Close;
sql.Clear;
SQL.Add('select * from kaoti where ' + '' + kind + '' + ' order by ID'); //sql无错
Open;
if TBlobField(FieldByName('Image')) <> nil then
begin
try
ms := TMemoryStream.Create;
TBlobField(TADOQuery(dsDetail.DataSet).FieldByName('Image')).SaveToStream(ms);
ms.Position := 0;
MyJPEG := TJPEGImage.Create;
MyJPEG.LoadFromStream(ms); // 错在这和下一行
img2.Picture.Bitmap.Assign(MyJPEG); //
finally
ms.Free;
MyJPEG.Free;
end; //end try
end;
end;
end;错误为:JPEG error #53 或JPEG error #42望前辈们指教,并说说原因,好让兄弟有前车之鉴。
表 :kaoti
字段 :image----ole对象1.不知道image字段里图的格式(库是客户提供的,不能更改,曾问图的格式说是windows预览图格式...晕),如何用ADO查询并在窗体上得出。
2.向Access中插入二进制数据后是不是数据本身就已经修改了,以致读取的时候报错?
3.假如我只想把图片的路径保存到数据库中,该如何存?现在紧要的是问题1的解决方法,一旦解决,马上补分
附代码 请大师们帮忙!uses jpeg; //不知图的格式,且试试procedure TFrm_Drill.FormShow(Sender: TObject);
var
MyJPEG: TJPEGImage;
MS: TMemoryStream;
begin
with TADOQuery(dsDetail.DataSet) do
begin
Close;
sql.Clear;
SQL.Add('select * from kaoti where ' + '' + kind + '' + ' order by ID'); //sql无错
Open;
if TBlobField(FieldByName('Image')) <> nil then
begin
try
ms := TMemoryStream.Create;
TBlobField(TADOQuery(dsDetail.DataSet).FieldByName('Image')).SaveToStream(ms);
ms.Position := 0;
MyJPEG := TJPEGImage.Create;
MyJPEG.LoadFromStream(ms); // 错在这和下一行
img2.Picture.Bitmap.Assign(MyJPEG); //
finally
ms.Free;
MyJPEG.Free;
end; //end try
end;
end;
end;错误为:JPEG error #53 或JPEG error #42望前辈们指教,并说说原因,好让兄弟有前车之鉴。
ms := TMemoryStream.Create;
TBlobField(TADOQuery(dsDetail.DataSet).FieldByName('Image')).SaveToStream(ms);
ms.Position := 0;
到这一不的时候,ms.savetofile('C:\a');然后用N种图象浏览软件试着打开这个文件,应该可以解决。代码出错是因为它不是jpeg格式的。
问题2:
以前是听说个这个说法,但从我使用的过程来看没有发现这个问题,我用的是access2003的数据库。
问题3:
这...就不用说了吧
http://www.aidelphi.com/6to23/Docu/BlobStream.zip
从数据库中读取数据存到文件Filename:
TBlobField(TADOQuery(dsDetail.DataSet).FieldByName('Image')).SaveToFile(Filename);将文件Filename保存到数据库:
TBlobField(TADOQuery(dsDetail.DataSet).FieldByName('Image')).LoadfromFile(Filename);
结贴
用的bluekitty的方法
已奏效了 为.emf 增强型图元文件
哈哈哈哈哈
cuteant的例子还没有看
谢谢两位前辈