2

Visual Studio を使用して、OCCI を使用して Oracle 11g データベースにクエリを実行する C++ プログラムを開発しています。この時点では非常に単純なプログラムで、単一のクエリしか作成していませんが、実行時エラーが発生し続けます。最初にこれを VS2010 で開発しようとして、11.2.0.3 OCCI ファイルをダウンロードしましたが、oci.dll にないヒープ割り当てプロシージャのエントリ ポイントに関連するエラーが発生しました。このエラーは、私の Oracle クライアントが 11.2.0.1 であることが原因である可能性があるという印象を受けました。

サポート上の理由でクライアントをより高いバージョンにアップグレードできないため、Visual Studio 2005 を使用することにしました。Oracle の OCCI ドキュメントで、VCCI ライブラリと DLL の vc8 バージョンが 11g に既にインストールされていることを読んだためです。クライアント。そのため、C++/OCCI プログラムを VS 2005 に移行したところ、別のデバッグ ランタイム エラーが発生しました。「アプリケーションを適切に初期化できませんでした」というエラー メッセージ ボックスと、「ldrpWalkImportDescriptor」という VS 出力ウィンドウのローダーからのメッセージです。 () マニフェストの [ORACLE CLIENT DIR]\oci\lib\msvc\vc8\oraocci11d.dll のプローブに失敗しました、ntstatus 0xc0150002"これを解決する方法について。OCCI の VS セットアップに精通している人は誰でも提案できますか? 前もって感謝します...

シェルドン

4

1 に答える 1

6

ここにある OCCI の質問の多くが未回答のままになっていることに気付いたので、私がどのようにして問題を解決したかを説明する義務があると感じています :) OCCI スレッドでよく言及されているように、重要なのは適切なバージョンの Oracle Instant Client をダウンロードすることです。既にインストールしたランタイム クライアントのファイルを使用しようとしましたが、そのクライアントのバージョン番号は 11.2.0.1 であり、VS2010 の OCCI には 11.2.0.2 または 11.2.0.3 のバージョンが必要です。そのため、OCCI と Instant Client の両方でバージョン 11.2.0.2 をダウンロードすることになりました。動作させるにはバージョン番号を一致させる必要があるためです...

その後は、PATH 環境変数を設定し、OCCI DLL、ライブラリ、およびインクルード ファイルを含むディレクトリを指すように Visual Studio プロジェクトを構成し、TNS_ADMIN 環境変数を設定して、OCCI DLL を含むディレクトリを指すようにするだけで済みました。接続しようとしているデータベースを定義する TNSNAMES.ORA ファイル。このセットアップの段階的な説明については、Mark Williams によるこのブログ投稿を参照してください。この投稿は Visual Studio 2008 向けに書かれていますが、バージョン番号が異なるだけで、手順は 2010 でも同じです...

シェルドン

于 2012-08-03T18:15:55.910 に答える