プライマリ・コンテンツに移動
Oracle® Call Interfaceプログラマーズ・ガイド
12c リリース1 (12.1)
B72465-07
目次へ移動
目次
索引へ移動
索引

前
次

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

OCI for Windowsの使用方法について説明します。

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

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

OCI for Windowsパッケージの内容

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

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

  • Oracle Call Interface(OCI)

  • Required Support Files (RSF)

  • Oracle Universal Installer

  • OCIアプリケーションのコンパイル用ヘッダー・ファイル

  • OCIアプリケーションのリンク用ライブラリ・ファイル

  • 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ディレクトリには、表D-1で説明している、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()関数により、クライアントDLLのロードのために次のディレクトリがこの順序で検索されます。

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

  • 現行ディレクトリ

  • Windows

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

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

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

Windows用OCIアプリケーションの実行について

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

Oracle XAライブラリ

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

  • Oracle Tuxedo

  • IBM Transarc Encina

  • IBM CICS

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

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

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

コンポーネント 位置

xa.h

ORACLE_BASE\ORACLE_HOME\oci\include

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

Oracle XAライブラリを使用してOCIプログラムのコンパイルおよびリンクを行うには、次の手順を実行します。

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

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

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

    ライブラリ 位置

    oraxa12.lib

    ORACLE_BASE\ORACLE_HOME\rdbms\xa

    oci.lib

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

    ORACLE_BASE\ORACLE_HOME\oci\lib\bc

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

XAの動的な登録の使用について

データベースでは、XAの動的な登録をサポートしています。

XAの動的な登録は、XA準拠TPモニターと対話するアプリケーションのパフォーマンスを改善します。TPモニターがWindows上でOracle Databaseに対し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モニターに関して、次の一般的な情報を参照してください。

Object Type Translator for Windowsの使用について

オブジェクトを利用するには、データベースに対してObject Type Translator (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,です。