この章では、Oracle Objects for OLE(OO4O)を紹介します。
注意: Oracle Database 11gリリース2(11.2)は、Oracle Objects for OLEをサポートする最後のデータベース・バージョンです。Oracle Database 11gリリース2(11.2)の後にリリースされるOracle Databaseバージョンでは、Oracle Objects for OLEはサポートされません。オラクル社のライフタイム・サポート・ポリシーの対象となっている既存のOracle Databaseバージョンでは、Oracle Objects for OLEを引き続き使用できます。 |
内容は次のとおりです。
Oracle Objects for OLE(OO4O)を使用すると、Microsoft COMオートメーションおよびActiveXテクノロジをサポートするプログラミングまたはスクリプト言語を介して、Oracleデータベースに格納されたデータにアクセスできます。これには、Visual Basic、Visual C++、Visual Basic for Applications(VBA)、IIS Active Server Pages(VBScriptおよびJavaScript)などが含まれます。
図1-1に、OO4O製品を構成するソフトウェア・レイヤーを示します。
OO4Oでは、次の内容が提供されます。
OO4Oインプロセス・オートメーション・サーバーは、Oracleデータベースへの接続、SQL文やPL/SQLブロックの実行、および結果へのアクセスのための一連のCOMオートメーション・オブジェクトです。
図1-2に、OO4O製品を構成するオブジェクト・モデルを示します。
Microsoft ActiveX Data Objects(ADO)などのCOMベースのデータベース接続APIとは異なり、OO4Oオートメーション・サーバーは、特にOracle Databaseを対象に作成されたものです。これは、Oracle Database固有の機能にアクセスするために最適化されたAPIを提供し、このAPIを使用せずにODBCまたはOLE DBコンポーネントからアクセスすると、煩雑であったり機能を利用できません。
OO4Oは、Visual BasicやExcelなどで開発された典型的な2層クライアント/サーバー・アプリケーションから、Microsoft Internet Information Server(IIS)やMicrosoft Transaction Server(MTS)におけるWebサーバー・アプリケーションなど複数層アプリケーション・サーバー環境に配置されたアプリケーション・サーバーまで、様々な環境でOracleデータベースに効率的かつ簡単にアクセスするための主機能を備えています。
次の機能があります。
Oracle 11gはグリッド対応であるため、開発者は既存コードを変更せずにグリッド・サポートをフルに活用できます。
問合せの結果セットに簡単かつ効率的にアクセスするための、スクロール可能で更新可能なクライアント側カーソル(調整可)。
PL/SQLの無名ブロックおよびストアド・プロシージャを実行するためのPL/SQLのサポート。これには、PL/SQLストアド・プロシージャのパラメータに必要なOracleデータ型(PL/SQLカーソルなど)のサポートも含まれます。
配列のフェッチ、更新および挿入に対するサポート。これによって、ネットワーク・ラウンドトリップの回数が減少します。
Oracleデータベースに格納されている動的コンテンツを使用し処理するスケーラブルな中間層アプリケーション・コンポーネント(IIS Active Server Pagesなど)の開発を可能にする接続プール。
COM+およびMicrosoft Transaction Server(MTS)が管理するトランザクションのサポート。
次に示す拡張Oracleデータ型のインスタンスへのシームレスなアクセス。
オブジェクト参照(REF)
オブジェクト・インスタンス(オブジェクト)
ネストした表
VARRAY
BLOB
、CLOB
、NCLOB
およびBFILE
XMLの生成。
アドバンスト・キューイングの完全なサポート。
データベース・イベントの公開、検出およびサブスクライブのサポート。
SQL文とPL/SQLブロックの非同期処理のサポート。
スキーマ・オブジェクトを記述するための使いやすいインタフェース。
ストアド・プロシージャ用のOracleコード・ウィザード。このウィザードは、PL/SQLまたはJavaストアド・プロシージャを実行するOO4Oコードを自動的に生成します。
マルチスレッド環境におけるオートメーション・オブジェクトへの安全なアクセスを可能にするスレッド・セーフティ。
Oracle Data Controlは、Oracleデータベースとビジュアル・コントロールとの間のデータ交換を簡素化するために設計されたActiveXコントロールです。このビジュアル・コントロールには、Visual Basicやカスタム・コントロールをサポートする他の開発ツールの編集、テキスト、リストおよびグリッドのコントロールなどがあります。
データ・コントロールによって、コードの記述なしに、ほとんどのデータ・アクセス操作を実行できます。データ・コントロール付きのダイナセットを作成するには、Connect
、DatabaseName
およびRecordSource
の各プロパティを設定して、Refresh
コマンドを実行します。
データ・コントロールは、基礎となるダイナセットの1フィールド、1レコードまたは複数レコードを表示する他のコントロールにバインドできます。レコードの移動が発生すると、バインド済コントロール内のデータはダイナセットのカレント・レコードと同期します。データ・コントロールにバインドされているコントロールのデータをユーザーが変更した場合、その変更内容は基礎となるダイナセットとデータベースに自動的に反映されます。
Oracle Data Controlは、Visual Basicに含まれているMicrosoftデータ・コントロールと互換性があります。Visual Basicのデータ・コントロールに習熟している場合は、Oracle Data Controlの使用方法をすぐに理解できます。データ認識コントロールとData Controlとの間の通信は、Microsoftが指定したプロトコルによって制御されます。
Oracle Objects for OLE C++クラス・ライブラリは、OO4Oオートメーション・サーバーへのプログラム的なアクセスを提供するC++クラスのコレクションです。このクラス・ライブラリはOLEオートメーションを使用して実装されますが、使用するためにOLE開発キットやOLE開発の知識は必要ありません。このライブラリを使用すると、C++開発者はOO4OインタフェースにアクセスするためのCOMクライアント・コードを記述する必要がありません。
オブジェクト・クラスに加え、このクラス・ライブラリもバインド済クラスを提供し、これにより、テキスト・ボックスやリスト・ボックスなどのコントロールをダイナセット(データベース内の表の列)のフィールドに直接リンクできます。このバインド済クラスは、Visual Basicと同様に、遅延実行時バインディングをサポートします。Oracle Objects for OLE C++クラス・ライブラリは、バインド済クラスに関してMicrosoft Visual C++およびMicrosoft Foundation Classesでサポートされています。
関連項目: オンライン・ヘルプとして利用できるOracle Objects for OLE C++クラス・ライブラリ開発者ガイド |
この項では、Oracle Objects for OLEを使用するために必要な設定を説明します。
Oracle Database 10gからは、Oracle Objects for OLEを複数のOracleホームにインストールできるようになりました。ただし、COMコンポーネントであるため、コンピュータ上でアクティブにできるのは1つのインスタンスのみです。つまり、前のインストールは、現在(最新)のインストールによって非アクティブにされます。OracleホームはOracleインストーラを使用して切り替えることができます。
注意: Oracle Objects for OLEは、Windows x64オペレーティング・システムでサポートされていません。 |
Oracle Objects for OLEをインストールするには、次のシステム要件が必要です。
Windowsオペレーティング・システム。
32-bit: Windows 7(Professional、EnterpriseおよびUltimate Edition)、Windows Vista(Business、EnterpriseおよびUltimate Edition)、Windows Server 2008(Standard、Enterprise、Datacenter、WebおよびFoundation Edition)、Windows Server 2003 R2(すべてのエディション)、Windows Server 2003(すべてのエディション)、またはWindows XP Professional Edition。
Oracleは、これらのオペレーティング・システム上で32-bitのOracle Objects for OLE x86版、AMD64およびIntel EM64Tプロセッサをサポートしています。
ローカルまたはリモートのOracleデータベース(Oracle9i リリース2以上)。
Oracle Client。Oracle Universal Installerは、RSFがOO4Oインストールの一部としてインストールされていることを確認します。
OO4Oオートメーション・サーバーには、COMオートメーションをサポートする次のようなアプリケーションが必要です。
Microsoft Visual Basic
Microsoft Excel
Microsoft Access
Microsoft Internet Information Server(IIS)
Borland Delphi
次の要件が必要になる場合があります。
Oracle Data ControlにはVisual Basicが必要です。
Oracle Objects for OLE C++クラス・ライブラリにはMicrosoft Visual C++ Version 6.0以上が必要です。
OO4Oコード・ウィザードにはVisual Basic 6が必要です。Visual Basic 6は、コード・ウィザードをインストールする前にインストールする必要があります。
OO4O Visual Basicプロジェクトを開発する際は、Oracleインプロセス・サーバー・タイプ・ライブラリ(oip
VER
.tlb
)を参照する必要があります。
参照するには、「Project」メニュー(VB 5.0/6.0)から「References」を選択し、ORACLE_BASE\\ORACLE_HOME
\bin\oip
VER
.tlb
ファイルを指しているOracle In-Process Server 5.0 Type Libraryの横にあるボックスを選択します。詳細は、「Visual BasicでのOracle Objects for OLEオートメーションの使用」参照してください。
OO4Oのインストールの一部として次のディレクトリが作成され、対応するファイルが格納されます。
ORACLE_BASE\ORACLE_HOME
\OO4O
- SQLスクリプトおよび定数ファイル
ORACLE_BASE\ORACLE_HOME
\OO4O\CPP
- ライブラリ、インクルード・ファイル、DLL、クラス・ライブラリのソース
ORACLE_BASE\ORACLE_HOME
\OO4O\CPP\MFC
- ライブラリ、インクルード・ファイル、MFCバインド済クラス・ライブラリのソース
ORACLE_BASE\ORACLE_HOME
\OO4O\EXCEL\SAMPLES
- Excelのサンプル
ORACLE_BASE\ORACLE_HOME
OO4O\VB\SAMPLES
- Visual Basicのサンプル
ORACLE_BASE\ORACLE_HOME
\OO4O\VB\SAMPLES\QT
- Visual Basicクイック・ツアー・ガイド
ORACLE_BASE\ORACLE_HOME
\OO4O\IIS\SAMPLES
- IISのサンプル
ORACLE_BASE\ORACLE_HOME
\OO4O\codewiz
- OO4Oコード・ウィザードのサンプル
最新の動作保証情報は、My Oracle Support(以前のOracleMetaLink)を参照してください。
http://metalink.oracle.com/
My Oracle Supportを使用する前にオンライン登録を行う必要があります。My Oracle Supportにログインした後、左側の列から「製品ライフサイクル」を選択します。「製品ライフサイクル」ページから、「動作保証」をクリックします。その他の「製品ライフサイクル」オプションには、「製品アベイラビリティ」、「サポート終了日のご案内」および「アラート」があります。
この項では、エンド・ユーザーまたは開発者が使用するコンピュータで再配布または更新できるファイルについて説明します。
エンド・ユーザーが現行リリースのOracle Objects for OLEをコンピュータにインストールしているかどうかが明確ではない場合は、Oracle Objects for OLEに含まれるOO4Oアプリケーション固有のファイルを再配布する必要があります。典型的な例は、OO4OがOracle Universal Installerを使用せずにパッチとしてインストールされた場合です。
表1-1に、再配布可能ファイルの場所、コメントおよび必要な動作を示します。
表1-1 再配布可能ファイルの場所
ファイル | ディレクトリの場所 | 必要な処理 | 備考 |
---|---|---|---|
|
|
コマンド・プロンプトで次のコマンドを実行します。
|
なし |
|
|
なし |
なし |
|
|
なし |
|
|
|
ご使用のコンピュータの正しい
|
OO4O構成情報を登録するためのファイルです。 |
|
|
なし |
このメッセージ・ファイルは、言語ごとに異なります。 |
(Microsoft VC++用) または
|
|
|
アプリケーションで使用した開発ソフトウエアに対応するファイルを配布してください。 |
さらに、「Oracle Objects for OLEの概要」で説明したシステム要件を満たしていることを確認してください。
アプリケーションの構築に使用した開発ソフトウエアに対応して、次のリストにあるファイルを配布する必要があります。
oraclm32.dll
(Microsoft Visual C++用)
oradc.ocx
OO4O構成情報を登録するためのoo4oparm.reg
ファイルが用意されています。このファイルを確認し、必要に応じて編集して、正しいORACLE_HOME
の位置とHOME
ID
をご使用のコンピュータに反映してください。oip
VER
.dll
を登録し、レジストリのoo4oparm.reg
にOO4O構成情報を入力するには、コマンド・プロンプトで次のコマンドを実行してください。
drive
:\
path
>
regsvr32.exe oip
VER
.dll
drive
:\
path
>
oo4oparm.reg
メッセージ・ファイルoiplang.msb
も用意して、ORACLE_BASE\ORACLE_HOME
\oo4o\mesg
ディレクトリにコピーする必要があります。このメッセージ・ファイルは、言語ごとに異なります。たとえば、oipus.msb
は英語版、oipja.msb
は日本語版です。
注意: これが機能するためには、Oracle Data Control(oradc.ocx )を登録する必要があります。OLE Control Extension(OCX)は、コマンド・プロンプトで次のコマンドを実行することによって登録できます。
|