我用一个AdoDataSet连接一个数据库,设置它的CommandType为cmdTable;pre_message属性为Table1(我的表名),数据库连接一切正常,可是在编译环境下第一次执行到AdoDataSet.Open代码时报以下错误:Project a.exe raised exception class EVarinatTypeCastError with message 'could not convert variant of type (Null) into type (String)'. 可是继续执行和再次执行到AdoDataSet.Open代码却不报任何错误,DBGrid中也正常显示了Table1的内容;而且直接执行编译后的exe文件也不会报错。我还试了在设计窗体状态把Active属性设为True,DBGrid也显示正常记录,没有报错,但一运行的第一次就又有以上错误提示,而后不报错。实在太奇怪了,有没有人知道希望告知,谢谢!后来发现ADOTABLE也出现类似情况,会不会是delphi6中ado的bug?(我打了第二个补丁包了)

解决方案 »

  1.   

    应该不是BUG,因为用的人很多好象还没有这事的。我估计还是你的其它控件的原因,试试只用一个AdoDataSet查询时会不会出错。
      

  2.   

    could not convert variant of type (Null) into type (String)
    类型转换时的错误,空类型不能转换成字符串类型,与AdoDataSet无关
      

  3.   

    你检查一下,是否你用CAST或CONVERT 函数有问题
      

  4.   

    我就是只用一个adodataset也报错啊,只做了连接的设置没有任何别的代码!