我用TQuery操作Access数据库,用他浏览添加删除纪录,对于Access数据库中字段不是太多的表完全没有问题,但是我有一个表字段达到90个,用TQuery向其保存纪录时候,提示出错:
错误消息如下:
  Key violation.
  [Microsoft][ODBC Microsoft Access 驱动程序] 查询过于复杂  先请问,是不是因为我的Access数据库中的那个表字段太多?如果是这样,怎么解决?
  
 查询过于复杂怎么解释?我的SQL语句类似就是下面这样的:
 Select * From 泵站运行纪录 Where 站ID = 3 由于事情比较急,还望各位朋友帮忙,谢谢

解决方案 »

  1.   

    >>我有一个表字段达到90个
    一个表有这么多的字段呀,表结构设计是否合理呢?如果是由于返回过多的记录集造成的,
    用Select 字段1,字段2 From 泵站运行纪录 Where 站ID = 3
    只要返回有用信息的字段,应该没问题吧。
      

  2.   

    因为我这个对话框是要用来浏览添加删除更改纪录的,所以所有的字段都做上来的,如果不做上来,我怎么能添加完整的纪录呢?,所以我想下面这样
      Select 字段1,字段2 From 泵站运行纪录 Where 站ID = 3
    是满足不了我的要求的
      

  3.   

    我不知道Access的表能支持多少列,但给你几个建议:
    1.考虑一下修改表结构的成本如何;
    2.考虑换成ADO方式;
    3.考虑升级一下BDE(最新的是5.11,D6带的就是了),因为你即使用ODBC实际上还是透过BDE来操作ODBC的。
      

  4.   

    我不知道Access的表能支持多少列,但给你几个建议:
    1.考虑一下修改表结构的成本如何;
    2.考虑换成ADO方式;
    3.考虑升级一下BDE(最新的是5.11,D6带的就是了),因为你即使用ODBC实际上还是透过BDE来操作ODBC的。
      

  5.   

    我在做个东东,是用ADO的,比BDE方便多了
      

  6.   

    我感觉你的程序用ado会很方便!!!
      

  7.   

    再问一句,在不修改表结构和更换采用ADO的前提下,真的就没有解决办法了?
      

  8.   

    xjspa(天涯) 说的很现实
    是呀,应该用学会在数据库中利用外键,数据库不是裹脚布,就算很长也不应该很臭
      

  9.   

    你试一下用cacheupdate方式更新,通过updateSQL控件更新数据表的记录。
      

  10.   

    用UpdateSQL确实可以,谢谢!!!!!!!!