我的公司有一个在Progress数据库上运行的第三方应用程序。我一直在使用ODBC连接在他们的数据库上构建应用程序。
Progress的一个“怪癖”是它不支持SQL列宽,因此它将允许在定义为varchar(50)的列中包含100个字符。通过ODBC读取此数据时,出现以下错误:
表格中的列test_column PUB.test_table的值超过了它 最大长度或精度。
构建应用程序的公司的支持技术人员指出我在注册表中为ODBC连接添加一些标志,但是,我找不到任何关于这些标志将做什么或可能的值的文档是。注册表项是
KEY_CURRENT_USER->软件 - > ODBC的> ODBC.INI-> MyODBCConnectionName->解决方法 KEY_CURRENT_USER->软件 - > ODBC的> ODBC.INI-> MyODBCConnectionName-> WorkArounds2
谷歌通过添加具有特定值的这些标志(包括我个人最喜欢的The Daily WTF)找到了人们解决的其他问题,但我找不到告诉我标志实际上做什么的任何地方。你知道吗?
答案 0 :(得分:2)
来自@ tom-bascom的链接不再有效,因为Progress移动了他们的KB。 @ stefan-moser对@mdb问题的评论是恰当的。
根据Chapter 11 WorkAround Options
的DataDirect Connect Series for ODBC ReferenceWorkArounds2 = 8192。启用此选项会导致Microsoft Access不传递错误-7748。 Microsoft Access仅以两字节SQL_C_WCHAR请求数据,这是一个不足以存储UCS2字符和空终止符的缓冲区大小;因此,驱动程序返回警告,“01004数据截断”并返回空字符到Microsoft Access。 Microsoft Access然后传递错误-7748。
的引用:
答案 1 :(得分:0)
这是一个修复:
'当使用Connect for ODBC驱动程序链接到包含一个或多个与之关联的索引的表时,Microsoft Access 2000会出现此错误。'
答案 2 :(得分:-1)
README file for DataDirect Connect for ODBC(基于Unix的ODBC驱动程序)包含文档“Driver WorkAround Options”部分中的变通方法列表。