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.

  • 相关阅读:
    基于 Laravel 完整开源项目大全
    微信分享 php jssdk
    点点客投票post抓包
    php一些 get就能提交的漏洞
    彩票网的数据接口 分析
    PHP一些实际常用的代码
    ThinkCMF常用代码
    php解压zip 待优化
    Python调用pywin32模块 发送QQ消息,打印窗口标题,切换窗口等句柄
    浅谈数列分块问题
  • 原文地址:https://www.cnblogs.com/cartler/p/3484751.html
Copyright © 2011-2022 走看看