Progress Providex数据库openquery SQL错误

问题描述:

当我使用providex odbc驱动程序对链接服务器执行openquery选择时出现此错误。我试图连接的数据库建立在Progress上。Progress Providex数据库openquery SQL错误

无法从链接服务器“FCEU”的OLE DB提供程序“MSDASQL”中获取列“[MSDASQL] .IVD_PRICE”的当前行值。转换失败,因为数据值溢出了提供者使用的数据类型。

有没有解决这个问题的方法?我无法访问我试图查询的服务器。

谢谢!

Progress数据库实现了所有数据类型作为可变长度。 “格式”只是默认显示的建议。进度应用程序经常忽略该建议和“over-stuff”字段。

这给大多数SQL客户端配合。

治愈取决于Progress/OpenEdge的版本。

从版本9开始的所有版本的Progress都支持一个名为“dbtool”的实用程序,该实用程序将扫描数据库并调整任何已被填充的字段的“SQL-WIDTH”属性。你必须在服务器上运行它。 (或者说服DBA做到这一点。)

http://knowledgebase.progress.com/articles/Article/P24496

这是进步数据库的一个很常见的,例行的程序。

您还可以使用-checkwidth参数来防止这些事情发生 - 但在您的情况下,马已经不在谷仓中,并且可能会破坏应用程序。所以它现在可能对你没有用处。

与OpenEdge 11.5开始有新的功能,以自动处理宽度侵犯时,SQL客户端连接:

http://knowledgebase.progress.com/articles/Article/How-to-enable-Authorized-Data-Truncation-in-a-JDBC-or-ODBC-connection