My company has a 3rd party application that runs on a Progress database. I've been building an application on top of their database using an ODBC connection.
我的公司有一个在Progress数据库上运行的第三方应用程序。我一直在使用ODBC连接在他们的数据库上构建应用程序。
One of the "quirks" of Progress is that it doesn't honor SQL column widths, so it will allow 100 characters in a column defined as a varchar(50). When reading this data via ODBC, I get the following error:
Progress的一个“怪癖”是它不支持SQL列宽,因此它将允许在定义为varchar(50)的列中包含100个字符。通过ODBC读取此数据时,出现以下错误:
Column test_column in table PUB.test_table has value exceeding its max length or precision.
表PUB.test_table中的列test_column具有超过其最大长度或精度的值。
The support techs at the company that build the application pointed me towards adding some work around flags in the registry for the ODBC connection, however, I can't find any documentation as to what these flags will do or what the possible values are. The registry keys are
构建应用程序的公司的支持技术人员指出我在注册表中为ODBC连接添加了一些标志,但是,我找不到任何关于这些标志将做什么或可能的值是什么的文档。注册表项是
KEY_CURRENT_USER->Software->ODBC->ODBC.INI->MyODBCConnectionName->WorkArounds KEY_CURRENT_USER->Software->ODBC->ODBC.INI->MyODBCConnectionName->WorkArounds2
Google has found me other problems that people have solved by adding these flags with specific values (including my personal favourite from The Daily WTF) but I can't find anywhere that tells me what the flags actually do. Do you know?
Google通过添加具有特定值的标志(包括我个人最喜欢的每日WTF)找到了人们已经解决的其他问题,但是我无法找到告诉我标志实际上做什么的任何地方。你知道吗?
3 个解决方案
#1
2
The link from @tom-bascom no longer works because Progress moved their KB. the comment from @stefan-moser on @mdb's question is appropriate.
来自@ tom-bascom的链接不再有效,因为Progress移动了他们的KB。 @ stefan-moser对@mdb问题的评论是恰当的。
According to Chapter 11 WorkAround Options of the DataDirect Connect Series for ODBC Reference
根据DataDirect Connect Series for ODBC参考的第11章WorkAround选项
WorkArounds2=8192. Enabling this option causes Microsoft Access not to pass the error -7748. Microsoft Access only asks for data as a two-byte SQL_C_WCHAR, which is an insufficient buffer size to store the UCS2 character and the null terminator; thus, the driver returns a warning, "01004 Data truncated" and returns a null character to Microsoft Access. Microsoft Access then passes error -7748.
WorkArounds2 = 8192。启用此选项会导致Microsoft Access不传递错误-7748。 Microsoft Access仅将数据作为双字节SQL_C_WCHAR请求,这是一个不足以存储UCS2字符和空终止符的缓冲区大小;因此,驱动程序返回警告“01004数据截断”并返回空字符到Microsoft Access。 Microsoft Access然后传递错误-7748。
references:
- ODBC PRODUCT DOCUMENTATION
- DataDirect Connect Series for ODBC Reference
- http://media.datadirect.com/download/docs/odbc/allodbc/reference/workarounds.html
ODBC产品文档
DataDirect Connect Series for ODBC Reference
#2
0
It is a fix for:
这是一个修复:
'This error occurs with Microsoft Access 2000 when using the Connect for ODBC drivers to link to a table which has one or more indexes associated with it.'
'当使用Connect for ODBC驱动程序链接到包含一个或多个与之关联的索引的表时,Microsoft Access 2000会出现此错误。
DataDirect支持KB
#3
-1
The README file for DataDirect Connect for ODBC (a Unix-based ODBC driver) contains a list of workarounds in the "Driver WorkAround Options" section of the document.
DataDirect Connect for ODBC(基于Unix的ODBC驱动程序)的README文件包含文档“Driver WorkAround Options”部分中的变通方法列表。
#1
2
The link from @tom-bascom no longer works because Progress moved their KB. the comment from @stefan-moser on @mdb's question is appropriate.
来自@ tom-bascom的链接不再有效,因为Progress移动了他们的KB。 @ stefan-moser对@mdb问题的评论是恰当的。
According to Chapter 11 WorkAround Options of the DataDirect Connect Series for ODBC Reference
根据DataDirect Connect Series for ODBC参考的第11章WorkAround选项
WorkArounds2=8192. Enabling this option causes Microsoft Access not to pass the error -7748. Microsoft Access only asks for data as a two-byte SQL_C_WCHAR, which is an insufficient buffer size to store the UCS2 character and the null terminator; thus, the driver returns a warning, "01004 Data truncated" and returns a null character to Microsoft Access. Microsoft Access then passes error -7748.
WorkArounds2 = 8192。启用此选项会导致Microsoft Access不传递错误-7748。 Microsoft Access仅将数据作为双字节SQL_C_WCHAR请求,这是一个不足以存储UCS2字符和空终止符的缓冲区大小;因此,驱动程序返回警告“01004数据截断”并返回空字符到Microsoft Access。 Microsoft Access然后传递错误-7748。
references:
- ODBC PRODUCT DOCUMENTATION
- DataDirect Connect Series for ODBC Reference
- http://media.datadirect.com/download/docs/odbc/allodbc/reference/workarounds.html
ODBC产品文档
DataDirect Connect Series for ODBC Reference
#2
0
It is a fix for:
这是一个修复:
'This error occurs with Microsoft Access 2000 when using the Connect for ODBC drivers to link to a table which has one or more indexes associated with it.'
'当使用Connect for ODBC驱动程序链接到包含一个或多个与之关联的索引的表时,Microsoft Access 2000会出现此错误。
DataDirect支持KB
#3
-1
The README file for DataDirect Connect for ODBC (a Unix-based ODBC driver) contains a list of workarounds in the "Driver WorkAround Options" section of the document.
DataDirect Connect for ODBC(基于Unix的ODBC驱动程序)的README文件包含文档“Driver WorkAround Options”部分中的变通方法列表。