1

我的公司有一个在Progress数据库上运行的第三方应用程序。我一直在使用 ODBC 连接在他们的数据库之上构建一个应用程序。

Progress 的“怪癖”之一是它不支持 SQL 列宽,因此它允许在定义为 varchar(50) 的列中包含 100 个字符。通过 ODBC 读取此数据时,出现以下错误:

表 PUB.test_table 中的列 test_column 的值超过了其最大长度或精度。

构建应用程序的公司的支持技术人员指出我要在注册表中为 ODBC 连接添加一些解决标志的工作,但是,我找不到任何关于这些标志将做什么或可能的值是什么的文档。注册表项是

KEY_CURRENT_USER->软件->ODBC->ODBC.INI->MyODBCConnectionName->WorkArounds KEY_CURRENT_USER->软件->ODBC->ODBC.INI->MyODBCConnectionName->WorkArounds2

谷歌发现了人们通过添加这些带有特定值的标志(包括我个人最喜欢的The Daily WTF中的个人最爱)解决的其他问题,但我找不到任何地方告诉我这些标志的实际作用。你知道吗?

4

3 回答 3

2

@tom-bascom 的链接不再有效,因为 Progress 移动了他们的知识库。@stefan-moser 对@mdb 问题的评论是恰当的。

根据ODBC 参考的DataDirect Connect 系列的第 11 章解决方法选项

解决方法 2=8192。启用此选项会导致 Microsoft Access 不传递错误 -7748。Microsoft Access 仅要求以两字节 SQL_C_WCHAR 形式提供数据,这不足以存储 UCS2 字符和空终止符的缓冲区大小;因此,驱动程序会返回一个警告“01004 数据被截断”,并向 Microsoft Access 返回一个空字符。Microsoft Access 然后传递错误 -7748。

参考:

于 2012-01-05T01:58:27.957 回答
0

这是一个修复:

“当使用 Connect for ODBC 驱动程序链接到具有一个或多个关联索引的表时,Microsoft Access 2000 会发生此错误。”

DataDirect 支持知识库

于 2009-06-17T15:12:21.887 回答
-1

DataDirect Connect for ODBC(基于 Unix 的 ODBC 驱动程序)的README 文件包含文档的“驱动程序解决方法选项”部分中的解决方法列表。

于 2008-10-07T21:19:39.570 回答