var
  jpg: TJpegImage;
  ghy: TADOBlobStream;
  ...
begin
....
ab := TBlobField(cdst.Fields[0]);        //这里通过
showmessage('Right till here');          //这里能正常打出来
ghy := TADOBlobStream.Create(ab, bmRead);//这里转换错了
....
end;这个转换为什么错?怎么改?其中cdst是一个TClientDataset的instance。
我在另外一个测试程序中用adoquery的实例就不会错

解决方案 »

  1.   

    有记录,我已经跟踪过了,就是那句出错,用adoquery就不会出错,用clientdataset就是不行,包括保存图片到数据库也不行,估计就是保存不对后面才不对的但是用的同样的sql语句,同样的表,同样是使用parammeter参数,它就是结果不同!
      

  2.   

    也不能说不行,其实是保存进去的数据不正确,所以后面哪怕用adoquery去读也出现jpeg error只要把保存跟读取全部换成adoquery就什么问题都没有,后面传进去的参数跟用在转换函数中的数据类型完全相同
      

  3.   

    可惜本来是用的c/s架构的,客户端配置文件只要配置一个服务器ip跟211端口就行了,现在这样一改成adoquery的话就需要另外加以个数据库配置文件了不过总算在我自己的机器上调试通过并且功能正常了,不理,呵呵