ヘッダーをスキップ
Oracle Call Interfaceプログラマーズ・ガイド
11g リリース1(11.1)
E05677-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

D OCI for Windowsスタート・ガイド

この付録では、Windows2003、Windows 2000およびWindows XPの各オペレーティング・システムに該当するOCIの機能のみ説明します。Windows NTは、サポート対象外になりました。

この章は、次の項目で構成されています。

OCI for Windowsパッケージの内容

Oracle Call Interface for Windowsパッケージには、次のものが含まれています。

OCI for Windowsパッケージには、OCIプログラムをリンクするために必要な追加ライブラリが含まれています。


関連項目:


単純なOCIのインストール・オプションは、「OCI Instant Client」を参照してください。

WindowsでのOracleディレクトリ構造

OCIは、デフォルトのOracle Databaseインストールに含まれます。Oracle Databaseをインストールする場合、Oracle Universal Installerにより、ORACLE_BASE\ORACLE_HOMEディレクトリの下のocibinおよびprecompディレクトリにOCIファイルが作成されます。これらのファイルには、OCIアプリケーションのリンクおよび実行に必要なライブラリ・ファイル、およびOracle Formsなどの他のOracle for Microsoft Windows製品へのリンクに必要なライブラリ・ファイルが含まれます。

ORACLE_BASE¥ORACLE_HOMEディレクトリには、OCIに関連のある次のディレクトリが含まれています。

表D-1 ORACLE_HOMEディレクトリと内容

ディレクトリ名 内容

¥bin

実行可能ファイルおよびヘルプ・ファイル

¥oci

Windows用Oracle Call Interfaceディレクトリ・ファイル

¥oci¥include

oci.hおよびociap.hなどのヘッダー・ファイル

¥oci¥samples

サンプル・プログラム

¥precomp¥admin¥ottcfg.cfg

Object Type Translatorユーティリティおよびデフォルト構成ファイル


Windows用サンプルOCIプログラム

OCIのインストール時に、サンプル・プログラムのセットおよび対応するプロジェクト・ファイルがORACLE_BASE¥ORACLE_HOME¥oci¥samplesサブディレクトリにコピーされます。OCIのインストールの成功を確認し、OCIアプリケーションの開発手順を理解するために、これらのサンプル・プログラムをビルドし、実行することをお薦めします。

サンプルをビルドするには、コマンド・プロンプトでバッチ・ファイル(make.bat)を実行します。たとえば、cdemo1.cサンプルをビルドするには、samplesディレクトリで次のコマンドを入力します。

C:> make cdemo1

これらのサンプル・プログラムの使用後、削除しても構いません。

ociucb.cは、ociucb.batを使用してコンパイルします。このバッチ・ファイルはDLLを作成し、ORACLE_BASE¥ORACLE_HOME¥binディレクトリに格納します。ユーザー・コールバック関数をロードするには、環境レジストリ変数ORA_OCI_UCBPKGOCIUCBを設定します。

Windows用OCIアプリケーションのコンパイル

OCIアプリケーションをコンパイルする際には、適切なOCIヘッダー・ファイルを含める必要があります。ヘッダー・ファイルは、¥ORACLE_BASE¥ORACLE_HOME¥oci¥includeディレクトリに格納されています。

Microsoft Visual C++については、「オプション」ダイアログ・ボックスのライブラリのセクションで、¥ORACLE_BASE¥ORACLE_HOME¥oci¥lib¥msvcを指定する必要があります。Borlandコンパイラについては、¥ORACLE_BASE¥ORACLE_HOME¥oci¥lib¥bcを指定します。

たとえば、Microsoft Visual C++ 8.0を使用している場合、「ツール」メニュー内にある「オプション」ダイアログの「ディレクトリ」ページで、適切なパス\oracle\db_1\oci\includeを入力する必要があります。


注意:


現行のOCIリリースでは、Microsoft Visual C++ 7.1以上のみがサポートされています。


関連項目:


アプリケーションのコンパイル方法および特別なコンパイラ・オプションに関する固有の情報は、コンパイラのドキュメントを参照してください。

Windows用OCIアプリケーションのリンク

OCIコールは、Oracleが提供するDynamic Link Libraries(DLL)で実装されます。DLLはORACLE_BASE¥ORACLE_HOME¥binディレクトリに格納されており、Required Support Files(RSF)の一部です。

Microsoft Compiler用のoci.libインポート・ライブラリのみ提供しています。BorlandコンパイラもOracleによってOCIでの使用がサポートされています。リリースごとの再リンクやコンパイルを回避するために、アプリケーションを必ずoci.libにリンクすることをお薦めします。

oci.libをMicrosoft Compilerとともに使用する場合、特別なリンク・オプションを指定する必要はありません。

oci.lib

アプリケーションをoci.libにリンクすることをお薦めします。これにより、Oracle DLLの正しいバージョンがロードされます。

LoadLibrary()使用時のクライアントDLLのロード

LoadLibrary()により、次のディレクトリがこの順序で検索されます。

  • アプリケーションのロード元ディレクトリ、またはoci.dllが格納されているディレクトリ

  • 現行ディレクトリ

  • Windows

    • 32ビットWindowsシステム・ディレクトリ(system32)。このディレクトリへのパスを取得するには、GetWindowsDirectory()関数を使用します。

    • 16ビットWindowsディレクトリ(system)。このディレクトリへのパスを取得するためのWin32関数は存在しませんが、検索されます。

  • PATH環境変数にリスト表示されているディレクトリ

Windows用OCIアプリケーションの実行

OCIアプリケーションを実行する際、OCIアプリケーションを実行するコンピュータ上に、対応するRequired Support Files(RSF)のセット全体がインストールされていることを確認してください。

Oracle XAライブラリ

XA Application Program Interface(API)は、通常、Oracleデータベースが次のようなトランザクション処理(TP)モニターと対話するために使用されます。

また、TPモニター文をクライアント・プログラムでも使用できます。XA APIの使用は、OCIによってサポートされています。

Oracle XAライブラリは、Enterprise Editionの一部として自動的にインストールされます。表D-2に、Oracleホーム・ディレクトリに作成されるコンポーネントを示します。oci.libにはXAエクスポートが含まれています。

表D-2 Oracle XAコンポーネント

コンポーネント 位置

xa.h

ORACLE_BASE¥ORACLE_HOME¥oci¥include


Oracle XAライブラリを使用したOCIプログラムのコンパイルおよびリンク

OCIプログラムのコンパイルおよびリンクの手順

  1. Microsoft Visual C++またはBorlandコンパイラを使用してprogram.cをコンパイルします。必ずパスにORACLE_BASE¥ORACLE_HOME¥rdbms¥xaを含めてください。

    表D-3 リンク・ライブラリ

    ライブラリ 位置

    oraxa11.lib

    ORACLE_BASE¥ORACLE_HOME¥rdbms¥xa

    oci.lib

    ORACLE_BASE\ORACLE_HOME\oci\lib\msvcまたは

    ORACLE_BASE¥ORACLE_HOME¥oci¥lib¥bc


  2. program.objを、表D-3に示されている次のライブラリとリンクします。

  3. program.exeを実行します。

XAの動的な登録の使用

データベースでは、XAの動的な登録をサポートしています。XAの動的な登録は、XA準拠TPモニターとインタフェースをとるアプリケーションのパフォーマンスを改善します。TPモニターがWindows上でOracleデータベースに対しXAの動的な登録を使用するようにするには、TPモニターが稼働しているWindowsコンピュータに、環境変数またはレジストリ変数のいずれかを追加する必要があります。手順は、次のいずれかの項を参照してください。

現行セッション用の環境変数の追加

コマンド・プロンプトで環境変数を追加すると、現行セッションのみが影響を受けます。

環境変数の追加

TPモニターがインストールされているコンピュータから、コマンド・プロンプトで次のように入力します。

C:\> set ORA_XA_REG_DLL = vendor.dll

vendor.dllは、ベンダーが提供するTPモニターのDLLです。

全セッション用のレジストリ変数の追加

レジストリ変数を追加すると、Windowsコンピュータ上の全セッションが影響を受けます。1つのTPモニターのみが稼働しているコンピュータでは、この方法が便利です。

レジストリ変数の追加

  1. TPモニターがインストールされているコンピュータに移動します。

  2. コマンド・プロンプトで次のように入力します。

    C:\> regedt32
    

    「レジストリ エディタ」ウィンドウが表示されます。

  3. HKEY_LOCAL_MACHINE¥SOFTWARE¥ORACLE¥HOMEIDに移動します。

  4. 「編集」メニューの「値の追加」オプションを選択します。「値の追加」ダイアログ・ボックスが表示されます。

  5. 「値の名前」テキスト・ボックスに「ORA_XA_REG_DLL」と入力します。

  6. 「データ型」リスト・ボックスで「REG_EXPAND_SZ」を選択します。

  7. 「OK」を選択します。「文字列エディタ」ダイアログ・ボックスが表示されます。

  8. 「文字列」フィールドに「vendor.dll」と入力します。vendor.dllは、ベンダーが提供するTPモニターのDLLです。

  9. 「OK」を選択します。レジストリ・エディタによってパラメータが追加されます。

  10. 「レジストリ」メニューから「レジストリ エディタの終了」を選択します。

    レジストリが終了します。

XAおよびTPモニターに関する情報

XAおよびTPモニターに関して、次の一般的な情報を参照してください。

  • 『Distributed TP: The XA Specification』(C193)、The Open Group発行。The Open Group、1010 El Camino Real、Suite 380、Menlo Park、CA 94025、U.S.A.。

  • 次のWebサイトを参照してください。

    http://www.opengroup.org/publications/catalog/tp.htm

  • ご使用のTPモニター固有のドキュメント


    関連項目:


    Oracle XAライブラリの詳細およびXAの動的な登録の使用方法の詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』の「Oracle XAでのアプリケーションの開発」を参照してください。

Object Type Translator for Windowsの使用

Object Type Translator(OTT)は、データベースに作成されて格納されているオブジェクトのC構造体表現の作成に使用します。

オブジェクトを利用するためには、データベースに対してOTTを実行します。これにより、C構造体を含むヘッダー・ファイルが生成されます。たとえば、データベースにPERSON型が作成された場合、PERSONの属性に対応する要素を持つC構造体がOTTにより生成されます。さらに、C構造体のインスタンスのNULL情報を表現するNULLインジケータ構造体が作成されます。

INTYPEファイルは、どのオブジェクト型を変換する必要があるかをOTTに指示します。また、このファイルは生成された構造体の命名も制御します。


注意:


Oracle Database 10g リリース1より、INTYPEファイル・アシスタントは使用できません。

CASE=LOWERなど、INTYPEファイル内のCASE仕様は、INTYPEファイルのTYPEまたはTRANSLATE文によって特別にリストされていないC識別子にのみ適用されます。INTYPEファイルでは、TYPE PersonおよびType PeRsOnなどのように、型名を適切な大/小文字で入力することが重要です。

Windowsでは、OTTはコマンドラインから起動できます。さらに、構成ファイルは、コマンドラインで名前を付けることができます。Windowsの場合、構成ファイルは、ORACLE_BASE¥ORACLE_HOME¥precomp¥adminに格納されているottcfg.cfgです。