删除/编辑MySQL ODBC链接表中的行会导致MS Access出错
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了删除/编辑MySQL ODBC链接表中的行会导致MS Access出错,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2698字,纯文字阅读大概需要4分钟。
内容图文
我在Windows 7(64位)下使用MS Access 2003,在MySQL服务器(5.0.51a-24 lenny5)上使用外部链接表,通过MySQL ODBC连接器连接(使用5.1.10,因为最新的5.1.11是错误的).当我在MS Access中打开此表并尝试从中删除一些记录时,我收到以下错误:
The Microsoft Jet engine stopped the process because you and another
user are attempting to change the same data at the same time.
当我尝试编辑表中的某些记录时,出现以下错误:
This record has been changed by another user since you started editing
it. If you save the record, you will overwrite the changes the other
user made.Copying the changes to the clipboard will let you look at the values
the other user entered, and then paste your changes back in if you
decide to make changes.
但是,当我通过删除或更新MS Access中的查询来执行此操作时,它工作正常!我只是无法直接从表中删除记录.
我发现(参见下面的详细分析),当存在具有大量十进制数字的值的双字段时,问题就出现了.看到:
CREATE TABLE `_try4` (
`a` int(11) NOT NULL default '0',
`b` double default NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
insert into _try4 values (1, NULL),(2, 4.532423),(3,10),(4,0),
(5,6.34324),(6, 8.2342398423094823);
只有当您尝试删除/编辑最后一条记录(a = 6)时才会出现此问题,否则就可以了!
问题记录在案:
http://support.microsoft.com/kb/280730,提出以下3个解决方法:
- Add a timestamp column to the SQL table. (JET will then use only this field to see if the record has been updated.)
- Modify the data type that is in SQL Server to a non-floating point data type (for example, Decimal).
- Run an Update Query to update the record. You must do this instead of relying on the recordset update.
但是,这3个解决方法并不令人满意.只有第一个可能,但这种解决方法不起作用 – 正如预期的那样.它可能只适用于MS SQL Server.
这个问题还有其他解决方案/解决方法吗?
额外细节:
> MySQL服务器只适合我,没有其他人访问它.
>插入新记录工作正常.
>为此表定义了主键.
>重新启动MS Access没有帮助.
>删除ODBC表的链接并再次链接它也没有帮助.
>从全新的Access数据库链接表没有帮助.
>将MySQL数据库引擎从MyISAM更改为InnoDB也无济于事.
>权限没有问题,此用户@ host拥有所有权限.
>我通常可以毫无问题地从服务器上的MySQL控制台删除记录.
>尝试设置MySQL Connector ODBC选项没有帮助:允许大结果,启用自动重新连接,允许多个语句,启用动态游标,强制使用仅向前游标,不缓存仅向前游标的结果.
>我在MySQL ODBC连接器中打开调试,它创建了myodbc.sql日志,但在编辑/删除时没有包含任何相应的查询(不知道为什么).
解决方法:
关于链表的结构的更多细节会有所帮助,但我会冒险猜测.
我在MS Access 2003和2010中都遇到了类似的问题,当时我在SQL Server链接表中包含了可以为空的布尔字段.似乎JET数据库存在可空的nit字段问题.查看此答案以获取更多信息:https://stackoverflow.com/a/4765810/1428147
我通过使布尔字段不可为空并设置默认值来解决我的问题.如果您的问题与我的问题相同,但使用MySQL,请尝试相同的操作.
内容总结
以上是互联网集市为您收集整理的删除/编辑MySQL ODBC链接表中的行会导致MS Access出错全部内容,希望文章能够帮你解决删除/编辑MySQL ODBC链接表中的行会导致MS Access出错所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。