首页 文章

Access中的数据单元“#Deleted” - ODBC,MySQL和BIGINT唯一ID

提问于
浏览
2

我有通过ODBC连接到MySQL服务器(不是Microsoft SQL Server)的MS Access 2007表的问题 .

If unique identifier in MySQL table is BIGINT - all cells content is displayed like this: "#Deleted".

我发现这篇文章:

"#Deleted" errors with linked ODBC tables (at support.microsoft.com)

它说:

以下是一些可用于避免此行为的策略:避免输入除唯一索引之外完全相同的记录 . 避免更新触发唯一索引和另一个字段的更新 . 由于此数据类型存在固有的舍入问题,因此不要将Float字段用作唯一索引或作为唯一索引的一部分 . 使用SQL传递查询执行所有更新和插入,以便准确了解发送到ODBC数据源的内容 . 使用SQL传递查询检索记录 . SQL传递查询不可更新,因此不会导致“#Delete”错误 . 避免在构成链接ODBC表的唯一索引的任何字段中存储Null值 .

但我没有“避免”这些东西 . 我的问题出在BIGINT . 为了确定是否这样,我创建了2个表,一个具有INT id,一个具有BIGINT . 就是这样 .

我无法在 生产环境 数据库中将BIGINT更改为INT .

Is there any way to fix this?

我正在使用:Access 2007,mysql-connector-odbc-3.51.30-winx64,MySQL服务器5.1.73 .

3 回答

  • 1

    您可以尝试在Access查询上创建表单,并使用查询中的CInt()将BIGINT转换为INT . 这在表单处理之前发生 . 根据您的情况,您可能需要在查询中转换为字符串(CStr()),然后手动处理验证用户是否使用IsNumeric输入了数字 . 我的想法是欺骗表单而不是试图解释数据类型,这似乎是你的问题 .

  • 0
  • 1

    MySQL驱动程序可以选择将 BIGINT 值转换为 INT . 这会为你解决问题吗?

    enter image description here

相关问题