0

Power Builder 11 应用程序在 Windows 2008 服务器上通过 ODBC 驱动程序遇到 DB 查询问题。以下是详细信息。

应用程序的查询格式类似于 select "column1" from "table1"。应用程序使用 MSSQL 数据库。该应用程序过去可以通过 ODBC 驱动程序在 Windows 2003 服务器上正常运行,但是该应用程序现在在 Windows 2008 服务器上运行失败。

经过详细分析,我发现由于引用标识符格式,查询在 Windows 2008 服务器上通过 ODBC 驱动程序失败。我试图修改quoted_identifier 属性,但没有帮助。当我从查询中删除引号时,它工作正常。但是实际上不可能进行这样的更改,因为应用程序有数千个这样的查询。2003 和 2008 都有不同的 SQL 驱动程序,但是后端数据库保持不变。

我无法更新数据库上的引用标识符属性,因为它被其他系统使用。请建议如何通过应用程序或 ODBC 驱动程序修复它。

4

2 回答 2

0

根据 MSDN:

SQL Server ODBC 驱动程序和 Microsoft OLE DB Provider for SQL Server 在连接时自动将 QUOTED_IDENTIFIER 设置为 ON。这可以在 ODBC 数据源、ODBC 连接属性或 OLE DB 连接属性中进行配置。对于来自 DB-Library 应用程序的连接,SET QUOTED_IDENTIFIER 默认为 OFF。

您是否尝试过修改连接字符串?

于 2015-07-04T01:02:55.100 回答
0

我现在已经解决了这个问题。我的应用程序是在 PB9.0 上设计的,当我们将应用程序从 Win2003 服务器移动到 Win2007 服务器时,系统停止在应用程序中呈现赋值运算符。我尝试了所有可能的选项,例如带引号的标识符、DLL 更改等,但没有任何效果。最后,我编写了一个程序,将赋值运算符转换为正常方式,即将 c+=A 转换为 C = C + A。一旦我对所有算术赋值运算符进行了此类更改,我的应用程序就开始正常工作。

于 2015-10-12T07:53:32.167 回答