mysql的MS访问错误

时间:2018-07-01 18:52:23

标签: mysql ms-access ms-access-2010

我正在开发一个使用ms Access 2010和oracle的应用程序。现在,我正在使用SQL 5.7代替oracle。

但是ms Access中的代码包含recordset.edit,然后是2个set语句,后跟recordset.update。 recordset.edit recordset.Fields(22).value=1 recordset.update

这将导致运行时错误3197。您和另一个用户试图同时更改同一数据。

我尝试匹配所有数据类型。但是似乎没有任何作用。我仍然遇到相同的错误。

感谢您的帮助。预先感谢

1 个答案:

答案 0 :(得分:1)

此“其他”用户消息经常会误导您,实际上,另一个用户尚未更新记录。

要检查的两件事:

如果某些sql更新或记录集代码“可能”更新了您正在处理的当前记录,则强制进行磁盘写入,因此不存在任何暂挂更新:

例如:

If me.Dirty = True then me.Dirty = false.

YOUR code here such as above is now called/run

第二个常见问题是空位列。这些通常会混淆访问,因此您需要在SERVER级别上确保为此类列设置了默认设置(sql server的值为0 – MySQL的不确定)。因此,这是一个必须检查的问题。

下一步:

确保所涉及的表具有PK,并且应添加行版本(时间戳)。此类列不能与日期时间或保存当前时间的列混淆,它是行版本列。因此,添加一个timestamp列,确保PK列存在,并确保表中的任何位(true / false)列都具有默认值。如果现有位列的值为空,则运行update query将它们全部设置为false(0)。

更改表(如果需要)后,然后重新链接所有访问表。

以上内容应涵盖99%的情况,当您获得该“其他”用户消息时,实际上您确定它不是另一个用户。