在Delphi程序中通过AdoConnection连接一个Access数据库,当用
AdoTable, AdoDataSet, AdoCommand连接这个数据库中的表,如果
这个表的名称为Key, 或者Memo的时候,这些控件的Active属性设置为
True就会发生错误。从而,打不开以这些名称的表。请问这是不是Delphi中ADO单元的bug

解决方案 »

  1.   

    key和memo为ACCESS数据库的保留字,所以会出问题。
    我以前也碰到过,
    改个名就行了。
      

  2.   

    不是。这是access的问题。如果字段或表名称是其保留字,它就会出问题。
    建议不要用这些笼统的关键字,如time等。
      

  3.   

    这样试试,如果你的表名为key,这样用[key]
      

  4.   

    这是因为和access数据库保留字冲突所致
      

  5.   

    是保留字的原因。gcj123(佛的光辉)的做法可以解决问题。
    但是建议还是改个名吧。。
      

  6.   

    但是在Access中打开这些表的时候却没有问题,并且可以
    正常输入数据。那么,既然,Access中没有问题,那么应
    该不是这个问题。
    我想应该还是Delphi中封装Ado的问题。请大家再帮帮忙,看看到底是什么原因?
      

  7.   

    access中没问题
    但是delphi不允许啊
    比如说
    tabelname=key
    那行嘛?
      

  8.   

    如果想知道为什么在Access中打开这些表的时候却没有问题,你可以在Access中设计一查询(注意选择部分字段)并保存,然后你可以通过‘设计’按钮再次查看Access生成的Sql语句吧,Access系统自动将其加上'[]',而不管是否是关键字,所以在Access中肯定正常了!
      

  9.   

    感谢:gcj123(佛的光辉) ,用你的方法解决了问题。没有想到这么拐弯磨角的问题大家也能解决,佩服佩服!真是“学不能无友”啊