Form上有一个 ADOTable和一个ADOQuery,但是执行到ADOTable.active:=true这一句话的时候出现:could not convert variant of type(null) into type(string)这个错误!怎么回事啊!我倒觉得好象是ADOQuery的错误!

解决方案 »

  1.   

    新new了一个form,然后放一个ADOTable,datasource,dbgrid,不执行的时候还可以在dbgrid中看到数据,但是一旦执行,就会弹出上面的错误对话框!是不是bug?win2000+delphi7.0+acess!
      

  2.   

    你在数据设计的时候把字段的默认属性设为default('')好了。
    这个问题和adoquery没关系的。还有,如果你不执行ADOTable.active:=true你是怎么看到数据的?
      

  3.   

    我也曾经遇到这样的事情:不出所料的话,你的数据库中某些字段的内容为空(即是NULL),
    当这些数据要在dbgrid显示时,内部有一个函数把数据库中的数据
    转换为字符(string)显示,而该函数不能把空的内容转换为字符,
    所以就出现了如上的错误提示。你可以这样解决一下:
    1、不让数据为空
    2、如果必须有数据为空,你可以先找到该字段
       然后在它的onGetText中加入如下代码:
       if Sender.value=NUll then
          Text:=''
       else
          Text:=Sender.value;
      

  4.   

    请问zyzl() :onGetText 指的是那个控件的事件?谢谢!
      

  5.   

    Sender.value=NUll  这样也行吗
    Sender.value is NUll   吧我不懂
    在边上看看
    学习中......
      

  6.   

    不清楚你的ado连接select语句.
    笼统的讲,有以下情况:
    1.parametre参数的类型匹配问题
    2.数据库的约束设置问题.