Ms Access 链接表到 IBM iSeries 缺少列

Posted

技术标签:

【中文标题】Ms Access 链接表到 IBM iSeries 缺少列【英文标题】:Ms Access linked table to IBM iSeries missing columns 【发布时间】:2020-06-20 23:59:01 【问题描述】:

当使用 Microsoft Access for Microsoft 365 (16.0.12827.20328) 64 位作为使用 odbc 将表链接到 IBM iSeries 数据库的前端时,某些列会丢失。

所有 ODBC 驱动程序都指向同一个名为 cwbodbc.dll 的文件,但也可以调用:

IBM i Access ODBC 驱动程序 IBM 客户端访问 ODBC 驱动程序 IBM iSeries Access ODBC 驱动程序

我们最近对共享表进行了刷新/重新链接,但它们不再按预期工作。

但是,我们有一个一周前的同一个 accdb 数据库的备份,它可以正常工作,使用完全相同的连接字符串和系统 dsn 设置。

我尝试使用完全相同的连接设置进行直通,它可以显示所有列。但是我需要它是可编辑的,所以我们需要链接表方法。

似乎与 odbc 属性设置有关(来自https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_74/rzaik/connectkeywords.htm)ConvertDateTimeToChar=4(将时间戳映射到字符)。当我将其更改回默认值时,链接表现在会打开所有列。但是在编辑带有时间戳列的表时,我得到了错误:

“写入冲突,此记录在您开始编辑后已更改。另一个用户在当前用户开始编辑后更改了记录。”

Microsoft 文档建议使用包含几分之一秒的日期/时间扩展数据类型,但在我的访问版本(最新版本)中不可用。

如何让这些 iSeries 链接表在 Microsoft Access 中再次工作?

【问题讨论】:

查看***.com/questions/62464046/…和***.com/questions/62481084/… @june7 我查看了您的链接,但其中一个与 mysql 相关,另一个提到了“日期/时间扩展”字段类型,这可能会有所帮助,但仍仅适用于 ms 访问的 beta 版本。真正的问题是为什么当我设置 odbc 连接字符串属性“DATETIMETOCHAR=4”时缺少列?它曾经工作过。 IBM 的这个链接似乎也解释了正在发生的事情,但确实提供了解决问题的方法。 ibm.com/support/pages/… 【参考方案1】:

想知道:您能否在该表上成功运行更新或追加查询?

如果是这样 - 解决方法可能是将表写入本地 Access 表(没有该问题字段)......应用您的手动编辑......然后更新/追加回活动表......

诚然,这是一个拼凑……但是……

【讨论】:

以上是关于Ms Access 链接表到 IBM iSeries 缺少列的主要内容,如果未能解决你的问题,请参考以下文章

DB2 for IBM i (iSeries) 日期 - 需要比较(当前日期 - 1)

通过 Data Studio 为 DB2 for IBM i (iSeries) 构建存储过程失败

IBM iSeries / AS 400中的DB2连接字符串

将IBM i Client Access中的cwbdc.dll手动嵌入到控制台应用程序中

IBM iSeries 结合日期和时间十进制字段来比较当前时间

C# - 无法将类型“IBM.Data.DB2.iSeries.iDB2DataReader”隐式转换为“System.Data.SqlClient.SqlDataReader”