在Delphi下使用TAdoTable进行Paradox、dBase、和MSAccess数据库访问,在IDE环境下将数据库和表选好并设Active为TRUE,Debugger Option 选项卡中选中Stop on Delphi Exceptions 结果一编译运行就提示如下错误Project Project1.exe raised exception calss EvariantTypeCastError
with message 'Could not convert variant of type (Null) into type
(String)'.Process stopped. Use Step or Run to continue.

[OK]  [Help]
[]View CPU Window按F9继续运行,浏览什么的都正常,可要是一运行到需要编辑数据的代码,如
 
  AdoTable1.Edit();
  AdoTable1['ID'] := 1003;
  AdoTable1.Post();
  或
  AdoTable1.InsertRecord([1005, 'Jin', 'GoodGirl']);就报出如下错误提示:Project Project1.exe raised exception calss EOLeException 
with message '[Microsoft][OBDC Paradox Driver] Operation must use updateable query'.Process stopped. Use Step or Run to continue.

[OK]  [Help]
[]View CPU WindowWin98/2000 & Delphi6/7下都这样,用BDE的TTable访问相同的数据表却一切正常,快郁闷死了,有经验的前辈指点一下!

解决方案 »

  1.   

    建议使用AdoDataSet和AdoQuery来提取数据
      

  2.   

    表定义时候有个字段是非空的类型,而你在Post的时候这个字段没赋值。
      

  3.   

    程序一运行的时候就赋初值了,但保存时一些不允许为空的字段你却没有赋值:  AdoTable1.Edit;
      AdoTable1['ID'] := 1003;
      AdoTable1.Post;
      

  4.   

    Paradox 与BDE结合得比较好,最好不要用ADO。
      

  5.   

    自定义得简单得不能再简单了
    就一个文件abc.db 里头就一个字段,三个记录
    ID(Int)
    100110021003dBase和MSAccess的也试了,也是这样简单的,都出现同样问题!
    主要是第一个错误提示:'Could not convert variant of type (Null) into type
    (String)',晕死
      

  6.   

    Tools菜單--Degugger Options -- 将integrated debugging的勾去掉.