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

私は今問題を解決しました。私のアプリケーションは PB9.0 で設計されており、アプリケーションを Win2003 サーバーから Win2007 サーバーに移動すると、システムはアプリケーションで代入演算子のレンダリングを停止しました。quoted identifier 、DLL の変更など、考えられるすべてのオプションを試しましたが、何も機能しませんでした。最後に、代入演算子を通常の方法に切り替えるプログラムを作成しました。つまり、c + = AをC = C + Aに変換します。すべての算術代入演算子に対してこのような変更を行うと、アプリケーションは正常に動作し始めました。

于 2015-10-12T07:53:32.167 に答える
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 に答える