zoukankan      html  css  js  c++  java
  • Microsoft Office Access 不能在追加查询中追加所有记录

    有客户反映,我们的软件ACCESS数据库版本在使用时会出现"Microsoft Office Access 不能在追加查询中追加所有记录"的错误。使用客户的数据库调试软件发现错误出现在执行下图这条SQL语句的时候,把SQL语句拿出来直接在Access里面执行同样报错,看来不是我们软件的问题。。。

    "一定是Access出问题了",这是我的第一反应。连错误提示都是这样没有参考价值,什么叫"Microsoft Access设置0字段为Null是因为类型转换失败,它未将1记录添加到表是因为键值冲突,没有添加0记录是因为锁定冲突,没有添加0记录是因为验证规则冲突。"??? That's why I hate Access!!

    既然提示了类型转换失败和键值冲突,就看看表结构吧,如下图:

    0字段应该是自动编号字段TRADEID了,1字段就是ACCOUNTNO。

    先看看ACCOUNTNO有没有键值冲突。错误语句插入的是691,换个别的试试,还是不行。再说这个字段也没有要求数据唯一性,应该不是这里的问题了。

    只可能是TRADEID字段的问题了。自动编号字段能保证唯一性,不知道"类型转换失败"和"锁定冲突"指的是什么。只能修改一下这个字段试试,把长整型改为整型,也不行。TRADEID是主键,把主键去掉试试,居然就行了!!!成功插入数据,没有提示那个错误,见下图。

    由此看来,这应该是锁定冲突造成的。至于"锁定冲突"是如何造成的,我在网上Google了一下,主要是因为多人同时操作数据库。

    至此,问题原因和解决方法都已经明确。我的软件设计是在单机环境下使用,大部分客户使用方法正确,通过软件进行操作,数据库读写正常。该客户手工打开数据库操作,造成数据库锁定冲突。

    知道原因就知道其实有更简单的解决方法,熟悉Access的都知道J.

  • 相关阅读:
    Yahoo 14条 雅虎十四条 优化原则【转】
    从HTML1到HTML5,回首HTML发展历史【转】
    HTML的发展历史【转】
    jquery中prop()方法和attr()方法的区别【转】
    一个文献综述的写法
    ammunition用法
    混了SQL连接就运行这个
    cruel用法
    ball up用法
    episode用法
  • 原文地址:https://www.cnblogs.com/cartler/p/3484751.html
Copyright © 2011-2022 走看看