我使用ADOTable打开本地dbf文件,当程序运行时,会出现如下错误:
  Project Project1.exe raised exception class EVariantError with message 'Invalid variant type conversion'. Process stopped.但是我手动执行编译后的exe文件却不会有任何问题,为什么?是什么原因造成此错误,该如何处理?

解决方案 »

  1.   

    重新分配ADOTBLE中所关联的字段
      

  2.   

    我的数据文件为dBASE III+文件格式, 
      Field Name Type Size
      CNAME C 12
      TM11 C 5
      TM12 C 5
      TM21 C 5
      TM22 C 5
      ST1 C 20
      ST2 C 20
      ST3 C 20
      ... C 20
      ST35 C 20我不想清空里面的内容,难道没有其他办法吗?
    因为Excel可以打开dbf文件,里面的部分数据是我用excel填入的,是不是跟这个有关?
      

  3.   

    ado
    单步运行时如果为空也会报错的,你可以步必理会
    EXE文件正常就说明你的程序没问题
      

  4.   

    bee2518(真棒)单步也不行,只要激活ADOTable,就会出错。但我觉得程序肯定收到了异常报告,在编译后的程序里,很多时候即使收到异常也不会报告,我还是想知道为什么有异常产生
      

  5.   

    程序编译成exe文件后,有一些错误不会显示出来,可以加异常处理,或者可以debug一下
      

  6.   

    可能你的表中有中文数据,面你的ODBC可能不支持中文呵
      

  7.   

    我怀疑是adotable本身的问题
    我也有过类似的情况
    同样情况下使用adoquery一点问题都没有
      

  8.   

    在从foxpro的库中向sql server 2000里转移数据时(用的是adoquery),当.dbf的字段中有中文信息时,delphi总是提示
    Project DataMove.exe raised exception class EOleException with message '[Microsoft][ODBC SQL Server Driver]字符串数据,右截位'。
    请问这是怎么回事呢,如果是驱动问题,又该如何解决呢?我用的是delphi6
    Tks
      

  9.   

    to : luhero(luhero) 
    由于字符集之间会有差异,所以delphi认不出中文字段是很正常的事情,所以字段中最好不要用中文。
      

  10.   

    to :dongjinhua(飞狼) 
    使用ado的时候,连接非常重要,我觉得可能是你的连接有问题。之所以可以编译通过,只是因为你没有用专用的服务器,所以都是在本机上的时候,当连接改变时,delphi仍然可以找到。另外,用delphi调用excel的时候确实比较麻烦!
      

  11.   

    该字段在FOXPRO的表中是字符型的,长度是20
    现在发现当只有一个汉字时,运行良好,可当有两个时,即使将长度改为80
    也不能正常执行代码。
    请教高手原因所在!我说的中文是表中的数据,面非字段名。
      

  12.   

    Driver do Microsoft dBase和Microsoft dBase Driver有什么区别吗
      

  13.   

    还是我自己来回答吧:在用ado时,parameter.size
    不小心用了缺省值的缘故!