gpt4 book ai didi

sql - MS Access 错误 "ODBC--call failed. Invalid character value for cast specification (#0)"

转载 作者:行者123 更新时间:2023-12-02 22:23:05 36 4
gpt4 key购买 nike

有谁知道这个错误意味着什么或如何解决它?我使用的是 Access 2003 和 SQL2005。当尝试在特定子表单上添加记录时会出现它。

[Microsoft][SQL Native Client] 转换规范的字符值无效 (#0)

This MS bug report描述了相同的消息,但这是 SQL Server 6.5 中的一个错误,已解决。

已解决:显然是目标表上没有 PK 导致了此问题,它与子表单或 Access 中的查询没有任何关系。 我什至不知道这个数据库中还有没有 PK 的表。将 PK 添加到目标表解决了这个问题。奇怪的是,通过 SQL native 客户端执行时出错的相同查询字符串,通过 SSMS 执行时没有错误。希望这对遇到该奇怪消息的其他人有所帮助。

最佳答案

嗯,我会检查 Access 端的默认文本框。我还会在设计模式下打开链接表,并且您想要检查 ms-access 在此假定的数据类型。对于不支持的数据类型,ms-access 通常会使用字符串,而 sql server 可能需要其他内容。

因此,检查主表中的主键 (PK),然后检查子表中外键 (FK) 列使用(假设)的数据类型。当我们这样做时,检查子表单控件中用于子/主链接设置的表达式(不是表单,不是子表单,而是链接这两个表的表单中使用的子表单控件)。

如果 SQL Server 表中没有时间戳列,则 Access 中的子表单是敏感的。如前所述,检查 PK 和 FK 数据类型并确保它们匹配(只需在 ms-access 中以设计模式调出表 - 您会收到一条有关设计模式为只读的错误消息,但只需继续,即 cocoa 以检查/查看以确保数据类型匹配)。

所以对于子表,你需要一个PK,一个FK,还需要一个时间戳列(你不必在子表单中显示TS列,但你需要在表中显示它)。

ms-access 中的子表单很敏感,如果您不在 sql 表中包含时间戳列,通常会失败。 ( Access 使用这些行版本列来确定数据是否已更改)。

关于sql - MS Access 错误 "ODBC--call failed. Invalid character value for cast specification (#0)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1522930/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com