COM Automation機能 開発者ガイド

11gリリース2(11.2)

B58875-02(原本部品番号:E10591-05)

目次

図一覧

表一覧

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

1 Oracle COM Automation機能の概要

- Oracle COM Automation機能の概要

- Oracle COM Automationの機能

- PL/SQL用のOracle COM Automation機能

- Java用のOracle COM Automation機能

- Oracle COM Automation機能の利点

- Oracle COM Automation機能のアーキテクチャ

- PL/SQLのアーキテクチャ

- COM Automationの外部プロシージャAPIのコール

- 可用性の問題に関するアーキテクチャ上の影響

- Javaアーキテクチャ

- 信頼性

2 Oracle COM Automation機能のインストールおよび構成

- Oracle COM Automation機能のコンポーネント

- PL/SQLコンポーネント

- Javaコンポーネント

- システム要件

- Oracle Database 10gリリース2またはOracle Database 11gリリース1からOracle Database 11gリリース2へのアップグレード

- Oracle COM Automation機能の構成

- PL/SQL用のOracle COM Automation機能の構成

- Java用のOracle COM Automation機能の構成

- PL/SQLのリスナーの構成

- リスナーの問題のトラブルシューティング

- DCOMのサポート

- DCOM用のコンピュータの構成

- データベース・インスタンスを実行しているコンピュータの構成

- ドメイン・ユーザーへのサービスの設定

- リモート・オブジェクトを含むコンピュータの構成

3 Oracle COM Automation機能の基本機能

- データ型の変換

- PL/SQLのデータ型変換

- Javaのデータ型変換

- HRESULTエラー・コード

- PL/SQLでのHRESULTの使用

- JavaでのHRESULTの使用

- Java用のOracle COM Automationの例外処理

- COM Automationの一般的な機能

- COMオブジェクトに関して必要な情報

- OLE-COMオブジェクト ビューア

- COM Automation機能のAPIの使用

- Application Program Interface

- PL/SQL API

- Java API

- PL/SQL API

- CreateObject

- DestroyObject

- GetLastError

- GetProperty

- SetProperty

- InitArg

- InitOutArg

- GetArg

- SetArg

- Invoke

- Java API

- Automationコンストラクタ

- Create

- Destroy

- GetProperty

- SetProperty

- InitArg

- SetArg

- Invoke

- Currencyコンストラクタ

- Get

- Set

4 Oracle COM Automation PL/SQLデモ

- PL/SQL用Oracle COM Automation機能のデモの概要

- Microsoft Wordデモ

- Microsoft Wordデモのインストール

- Microsoft Wordデモの使用方法

- 基本機能

- Microsoft Excelデモ

- Microsoft Excelデモのインストール

- Microsoft Excelデモの使用方法

- 基本機能

- Microsoft PowerPointデモ

- Microsoft PowerPointデモのインストール

- Microsoft PowerPointデモの使用方法

- 基本機能

- MAPIデモ

- MAPIデモを使用する環境の設定

- MAPIデモのインストールの準備

- MAPIデモのインストール

- MAPIデモの使用方法

- 基本機能

5 Oracle COM Automation Javaデモ

- Oracle COM Automation機能 Javaデモの概要

- Microsoft Word Javaデモ

- Microsoft Word Javaデモのインストール

- Microsoft Word Javaデモの使用方法

- カスタム・アプリケーションの作成

- 基本機能

A COM Automationエラー・メッセージ

- Oracle COM Automation機能のPL/SQLエラー

- Microsoft COM Automationのエラー

用語集

索引

図一覧

- 1-1 Oracle COMの相互関係

- 1-2 PL/SQL用のCOM Automation機能のアーキテクチャ

- 1-3 Java用のCOM Automation機能のアーキテクチャ

- 3-1 OLE-COMオブジェクト ビューア

表一覧

- 2-1 セキュリティ資格証明を決定するサービス

- 3-1 PL/SQLデータ型からCOM Automationデータ型への変換

- 3-2 Javaデータ型からCOM Automationデータ型への変換

- 3-3 COMExceptionデータ・メンバー

Oracle® COM Automation機能

開発者ガイド

11gリリース2(11.2)

B58875-02(原本部品番号:E10591-05)

2011年1月

Oracle COM Automation機能開発者ガイド, 11g リリース2(11.2)

B58875-02

Copyright © 1999, 2011, Oracle and/or its affiliates.All rights reserved.

原本著者: Tulika Das

協力者:  Neeraj Gupta、Janis Greenberg、Eric Belden、Steven Caminez、Jagadish Changavi、Barmak Meftah、Valarie Moore、Vikhram Shetty、Sujith Somanathan、Alex Keh、Christian Shay、Riaz Ahmed

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントが、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供される場合は、次のNoticeが適用されます。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアを危険が伴うアプリケーションで使用する際、このソフトウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

このソフトウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

はじめに

このドキュメントはOracle COM Automation機能の概要、インストール、インストール後の構成および使用情報に関する重要なソースです。

注意:
Oracle Database 11g リリース2 (11.2)は、Oracle COM Automation機能をサポートする最後のデータベース・バージョンです。Oracle Database 11g リリース2 (11.2)より後にリリースされるOracle Databaseバージョンでは、Oracle COM Automation機能はサポートされません。Oracleのライフタイム・サポート・ポリシーで対応される既存のOracle DatabaseバージョンでOracle COM Automation機能の使用を継続して使用できます。

このマニュアルで説明するのは、Windows 2000、Windows XPおよびWindows Server 2003オペレーティング・システムに適用されるOracle Database for Windowsの機能です。

ここでは、次の項目について説明します。

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

対象読者

『Oracle COM Automation機能開発者ガイド』は、COMを使用するソリューションを開発する開発者を対象としています。

このマニュアルは、次のことを十分に理解していることを前提にしています。

- Component Object Model(COM)

- OLEオートメーション

- 構造化問合せ言語(SQL)

- データ定義言語(DDL)

- データ操作言語(DML)

- PL/SQLまたはJava

- Oracleのオブジェクト・リレーショナル・データベース管理システム(ORDBMS)の概念

- Windows Serverオペレーティング・システム

ドキュメントのアクセシビリティについて

オラクル社は、障害のあるお客様にもオラクル社の製品、サービスおよびサポート・ドキュメントを簡単にご利用いただけることを目標としています。オラクル社のドキュメントには、ユーザーが障害支援技術を使用して情報を利用できる機能が組み込まれています。HTML形式のドキュメントで用意されており、障害のあるお客様が簡単にアクセスできるようにマークアップされています。標準規格は改善されつつあり、オラクル社はドキュメントをすべてのお客様がご利用できるように、市場をリードする他の技術ベンダーと積極的に連携して技術的な問題に対応しています。オラクル社のアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/accessibility/を参照してください。

ドキュメント内のサンプル・コードのアクセシビリティについて

スクリーン・リーダーは、ドキュメント内のサンプル・コードを正確に読めない場合があります。コード表記規則では閉じ括弧のみを行に記述する必要があります。しかし、一部のスクリーン・リーダーは括弧のみの行を読まない場合があります。

外部Webサイトのドキュメントのアクセシビリティについて

このドキュメントにはオラクル社およびその関連会社が所有または管理しないWebサイトへのリンクが含まれている場合があります。オラクル社およびその関連会社は、それらのWebサイトのアクセシビリティに関しての評価や言及は行っておりません。

Oracleサポートへのアクセス

Oracleカスタマは、My Oracle Supportから電子サポートにアクセスできます。詳細は、http://www.oracle.com/support/contact.htmlまたはhttp://www.oracle.com/accessibility/support.html(聴覚障害者向け)を参照してください。

関連ドキュメント

詳細は、次のOracleドキュメントを参照してください。

- Oracle Databaseのインストレーション・ガイド

- Oracle Databaseのリリース・ノート

- 『Oracle Databaseプラットフォーム・ガイドfor Microsoft Windows』

- 『Oracle Services for Microsoft Transaction Server開発者ガイド』

- 『Oracle Database Net Services管理者ガイド』

- 『Oracle Database新機能ガイド』

- 『Oracle Database概要』

- 『Oracle Databaseリファレンス』

- 『Oracle Database Java開発者ガイド』

Oracleエラー・メッセージについては、『Oracle Databaseエラー・メッセージ』を参照してください。ほとんどのOracleエラー・メッセージのドキュメントは、HTML版のみが存在します。Oracle Database JP Documentation Libraryにのみアクセスする場合は、範囲を指定してエラー・メッセージを参照できます。特定の範囲のページを表示したら、ブラウザの「このページの検索」機能を使用して特定のメッセージを検索できます。インターネットに接続できる場合、Oracleオンライン・ドキュメントのエラー・メッセージ検索機能を使用して特定のエラー・メッセージを検索できます。

このマニュアルに記載されている例の多くは、Oracleのインストール時にデフォルトでインストールされるシード・データベースのサンプル・スキーマを使用しています。サンプル・スキーマの作成方法および使用方法の詳細は、『Oracle Databaseサンプル・スキーマ』を参照してください。

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 Oracle COM Automation機能の概要

この章では、Oracle COM Automation機能のSoftware Development Kit(SDK)についての説明と、製品の概要を示します。Oracle COM Automation機能をインストールして使用する前に、この章をお読みください。

注意:
Oracle Database 11g リリース2 (11.2)は、Oracle COM Automation機能をサポートする最後のデータベース・バージョンです。Oracle Database 11g リリース2 (11.2)より後にリリースされるOracle Databaseバージョンでは、Oracle COM Automation機能はサポートされません。Oracleのライフタイム・サポート・ポリシーで対応される既存のOracle DatabaseバージョンでOracle COM Automation機能を継続して使用できます。

この章の項目は次のとおりです。

- Oracle COM Automation機能の概要

- Oracle COM Automation機能の利点

- Oracle COM Automation機能のアーキテクチャ

Oracle COM Automation機能の概要

Oracle COM Automation機能では、Windowsオペレーティング・システム上のOracle Databaseの機能を、Component Object Model(COM)ベースのコンポーネントを使用してカスタマイズし、強化できます。

カスタム・コンポーネントを独自に作成することも、あるいはサード・パーティの独立系ソフトウェア・ベンダー(ISV)から入手できる数多くの作成済コンポーネントを利用することもできます。

Oracle COM Automationの機能

Oracle COM Automation機能には、PL/SQLまたはJavaを使用してCOMオブジェクトを操作するためのメカニズムが用意されています。

- Oracle COM Automation機能は、IDispatchインタフェースの汎用ラッパーとして機能します。

- Oracle COM Automation機能は、IDispatchインタフェースによってサポートされるすべてのメソッドを使用可能にします。

- COMオブジェクトは、プロパティ、データ属性およびメソッド(アクションを実行するファンクション)を開発者に公開します。

- IDispatchインタフェースは、すべてのCOMオブジェクトに対する3つの基本操作をサポートします。

- 公開されたプロパティの値の取得

- 公開されたプロパティの値の設定

- オブジェクトに対するメソッドのコール

Oracle COM Automation機能のApplication Program Interface(API)がPL/SQLまたはJavaストアド・プロシージャからコールされると、Oracle COM Automation機能によりパラメータが適切なCOM Automationデータ型に変換されます。次に、変換されたパラメータの値を使用して、対応するIDispatch APIがコールされます。

関連項目:
データ型およびAPIの説明は、第3章「Oracle COM Automation機能の基本機能」を参照してください。

PL/SQL用のOracle COM Automation機能

PL/SQL用のOracle COM Automation機能は、PL/SQLパッケージを提供し、COMオブジェクトをインスタンス化するための一連のApplication Program Interface(API)を公開します。開発者は、これらのAPIをPL/SQLサブプログラム、ストアド・プロシージャ、ストアド・ファンクションまたはトリガーからコールしてCOMオブジェクトを操作できます。

COMオブジェクトを置く場所に関する制限はありません。COMオブジェクトはデータベースに対してローカルに配置するか、Distributed Component Object Model(DCOM)を介してリモートでアクセスできます。

Java用のOracle COM Automation機能

Java用のOracle COM Automation機能は、COMオブジェクトをインスタンス化するための一連のJava APIを提供します。開発者は、これらのAPIをJSP、JavaファンクションまたはJavaトリガーからコールしてCOMオブジェクトを操作できます。

Java用のOracle COM Automation機能では、インプロセスCOM Automationサーバーを使用できません。開発者は、dllhostを使用し、インプロセス・サーバーをサポートできます。

Oracle COM Automation機能の利点

Oracle COM Automation機能は、WindowsにおけるOracle開発者のための強力かつ有用なインフラストラクチャ・テクノロジです。次のような利点があります。

- 開発の容易さ
Oracle COM Automation機能は、COMオブジェクトを操作するための簡単な一連のAPIを公開します。COMおよびMicrosoft Visual Basicに習熟した開発者であれば、これらのAPIを既存のPL/SQLサブプログラムまたはJavaプログラムに容易に組み込むことができます。

- 再利用性
Oracle COM Automation機能により、社内またはサード・パーティの独立系ソフトウェア・ベンダー(ISV)によって開発された、作成済のCOMコンポーネントを利用できます。目的に応じて選択できる数多くのCOMコンポーネントがすでに存在しています。COMコンポーネント市場は急速に成長し、プログラミングに共通する多くの問題に対応するソリューションが提供されています。

- 柔軟性と拡張性
Oracle COM Automation機能を使用することにより、データベース・サーバーの機能をカスタマイズし、強化することができます。COMコンポーネントを使用し、Oracle Databaseをカスタマイズして次のことができます。

- Microsoft Word、Microsoft Excel、Microsoft PowerPointなどの生産性アプリケーション間でデータを交換。

- Seagate Crystal Reportsを使用してレポートを生成。

- MAPI準拠のアプリケーションで電子メールを送受信。

データベース・サーバーのカスタマイズおよび機能拡張に制限はありません。

- 強化された統合
Oracle COM Automation機能では、OracleとWindowsを組み合せた環境にOracle Databaseをデプロイできます。Windows、Microsoft BackOfficeアプリケーションおよびMicrosoft Officeアプリケーションで公開されているサービスとOracle COM Automation機能を完全に統合し、Oracle COM Automation機能からそれらのサービスを利用できます。

- 移植性およびプラットフォーム固有の要件
Oracle COM Automation機能を使用しているアプリケーションは、プラットフォームに依存しないJavaまたはPL/SQLで作成されています。Windowsで実行する必要があるのは、COMコンポーネントをコールする必要のあるデータベース・インスタンスのみです。

Oracle COM Automation機能のアーキテクチャ

図1-1は、Oracle COM Automation機能を持つOracle Database、クライアント・アプリケーションおよびサーバー・アプリケーションとの関係を示したものです。

図1-1 Oracle COMの相互関係

「図1-1 Oracle COMの相互関係」の説明

PL/SQL用のOracle COM Automation機能とJava用のOracle COM Automation機能のアーキテクチャ上の違いについて、次の2つの項で説明します。

PL/SQLのアーキテクチャ

PL/SQL用のOracle COM Automation機能は、COMオブジェクトを操作するPL/SQL APIのパッケージを提供しています。これらのAPIは、ダイナミック・リンク・ライブラリ(DLL)内の外部プロシージャとして実装されています。

Oracleでは、開発者がサーバー・ベースのオブジェクト型のメソッドおよびストアド・プロシージャから第3世代言語(3GL)関数をコールできる外部プロシージャをサポートします。外部プロシージャは、標準のPL/SQLストアド・プロシージャとまったく同じようにコールされます。ただし、プロシージャの本体がPL/SQLで記述され、データベースに保存されている標準のPL/SQLプロシージャとは異なり、外部プロシージャはDLL内のCプログラミング言語の関数です。Oracle COM Automation機能のAPIは、標準のPL/SQLストアド・プロシージャまたはファンクションをコールするのと同じ方法でコールできます。

図1-2は、Oracle DatabaseによってCOM Automationの外部プロシージャAPIがコールされる様子を示したものです。

図1-2 PL/SQL用のCOM Automation機能のアーキテクチャ

「図1-2 PL/SQL用のCOM Automation機能のアーキテクチャ」の説明

COM Automationの外部プロシージャAPIのコール

データベース・サーバーは、次のように任意のCOM Automationの外部プロシージャAPIをコールします。

1. PL/SQLインタプリタは、Oracle COM Automation機能のDLL(orawpcomVER.dll)へのパス名を検索します。VERはリリース番号です。

2. 現行のユーザー・セッションに対してextproc.exeが起動されていない場合、PL/SQLインタプリタは、Oracle Netを使用してリスナーにメッセージを送信し、起動します。

3. PL/SQLインタプリタはプロシージャ名、パラメータおよびDLLのパス名をextproc.exeに渡します。

4. extproc.exeファイルはDLLをロードし、外部プロシージャを実行します。それぞれのCOM Automationの外部プロシージャAPIにより、COMオブジェクトのインスタンス化、COMオブジェクトのプロパティの設定または取得、あるいはCOMオブジェクトのメソッドのコールを行うWin32 APIが順次コールされます。

5. extproc.exeファイルは媒介として機能し、Oracle COM Automation機能とデータベース・サーバー間のすべての対話を処理します。

可用性の問題に関するアーキテクチャ上の影響

PL/SQL用のOracle COM Automation機能による外部プロシージャへの依存性は、データベース・サーバーの可用性と密接に関係します。

Oracle COM Automation機能と、カスタムまたはサード・パーティ製のCOMオブジェクトを本番環境で使用しても、データベース・サーバーの可用性に悪影響は出ません。Oracle COM Automation機能は、Oracleカーネルのアドレス空間の外部で動作します。これにより、不意に停止するCOMオブジェクトからOracle Databaseが保護されます。

Javaアーキテクチャ

Java用のOracle COM Automation機能は、Java Native Interface(JNI)によって実装されます。このアーキテクチャの主要コンポーネントは、AutomationクラスおよびJava COMプロキシDLLであるorawcomVER.dll(VERはリリース・バージョン)です。

インタフェースは、COM AutomationサーバーへのJavaプロキシであるAutomationクラスです。Automationクラスにより、開発者がIDispatchを通じてCOMオブジェクトを操作するために必要なメソッドが提供されます。

Java固有のCOMプロキシであるorawcomVER.dllにより、Javaファンクションは対応するCOMファンクションをコールできます。

図1-3は、Java用のOracle COM Automation機能の実装について示したものです。

図1-3 Java用のCOM Automation機能のアーキテクチャ

「図1-3 Java用のCOM Automation機能のアーキテクチャ」の説明

信頼性

Java用のOracle COM Automation機能は、データベース・サーバーからCOMコンポーネントをコールします。ただし、COMコンポーネントはOracle Databaseプロセスの外部で実行されます。この設計により、データベース・プロセスへの不安定なCOMコンポーネントの影響を回避できます。

2 Oracle COM Automation機能のインストールおよび構成

この章では、Oracle COM Automation機能のインストールおよびインストール後の構成タスクの概要を説明します。

この章の項目は次のとおりです。

- Oracle COM Automation機能のコンポーネント

- システム要件

- Oracle Database 10gリリース2またはOracle Database 11gリリース1からOracle Database 11gリリース2へのアップグレード

- Oracle COM Automation機能の構成

- PL/SQLのリスナーの構成

- DCOMのサポート

Oracle COM Automation機能のコンポーネント

Oracle COM Automation機能パッケージは、Oracleのインストール時に一緒にインストールできます。これには、この製品を使用して実際の問題を解決する方法を例示する機能およびデモが含まれています。

関連項目:
インストール手順については、Microsoft Windows用の『Oracle Databaseインストレーション・ガイド』 を参照してください。

COM Automationパッケージには、次のPL/SQLコンポーネントおよびJavaコンポーネントが含まれています。

- PL/SQLコンポーネント

- Javaコンポーネント

PL/SQLコンポーネント

Oracle COM Automation機能用のPL/SQLコンポーネントは、次のとおりです。

- Oracle COM Automation機能 PL/SQL(orawpcomVER.dll)

- PL/SQLインストールおよび定義スクリプト(comwrap.sql)

- Oracle COM Automationデモ・プログラム

- メッセージ・ファイル(comus.msbなど)

Oracle COM AutomationのPL/SQL機能orawpcomVER.dllは、ORACLE_BASE\ORACLE_HOME\binディレクトリにあります。

他のすべてのコンポーネントは、ORACLE_BASE\ORACLE_HOME\comディレクトリにあります。

Javaコンポーネント

Oracle COM Automation機能用のJavaコンポーネントは、次のとおりです。

- JARファイルorawcom.jar

- Oracle COM Automation機能 Java(orawcomVER.dll)

- Oracle COM Automationデモ・プログラム

- grant.sqlスクリプト・ファイル

Oracle COM AutomationのJava機能orawcomVER.dllは、ORACLE_BASE\ORACLE_HOME\binディレクトリにあります。他のすべてのコンポーネントは、ORACLE_BASE\ORACLE_HOME\com\javaディレクトリにあります。

システム要件

Oracle COM Automation機能では、次の要件を必要とします。

- Windows XP、Windows Server 2003、Windows Server 2003 R2、Windows Vista、Windows 7、Windows Server 2008、Windows Server 2008 R2

- 機能しているデータベース

関連項目:
システム要件の詳細は、Microsoft Windows用の『Oracle Databaseインストレーション・ガイド』を参照してください。

Oracle COM Automation機能を使用するには、システムにCOM Automation機能サーバーが必要です。たとえば、COM Automation機能デモの場合、デモ・プログラムで使用されるアプリケーションを最初にインストールする必要があります。

- Microsoft Word、ExcelおよびPowerPointデモには、Microsoft Office 2000以上が必要です。

- Messaging Application Programming Interface(MAPI)デモには、Microsoft Outlook 2000以上が必要です。

デモとインストールについては、「Oracle COM Automation機能 PL/SQLデモの概要」および「Oracle COM Automation機能 Javaデモの概要」で説明します。

Oracle Database 10gリリース2またはOracle Database 11gリリース1からOracle Database 11gリリース2へのアップグレード

Oracle COM Automation機能をOracle Database 10gリリース2またはOracle Database 11gリリース1からOracle Database 11gリリース2にアップグレードするには、次のようにします。

1. comwrap.sqlスクリプトを再実行します。

2. grant.sqlスクリプトを実行します。

3. Javaクラスを再インストールします。

4. コンパニオンCDからデモを再インストールします。

関連項目:
「Oracle COM Automation機能の構成」

Oracle COM Automation機能の構成

PL/SQLとJavaで異なる構成手順は、次の各項で説明しています。

- PL/SQL用のOracle COM Automation機能の構成

- Java用のOracle COM Automation機能の構成

PL/SQL用のOracle COM Automation機能の構成

PL/SQL用のOracle COM Automation機能を構成するには、次のようにします。

1. SQL*Plusを起動します。

2. データベースにSYSTEMとして接続します。

SQL> CONNECT SYSTEM@net_service_name
Enter password: password

3. Oracle COM Automation機能を使用するデータベース・ユーザーにCREATE LIBRARY権限を付与します。入力例は次のとおりです。

SQL> GRANT CREATE LIBRARY TO hr;

4. Oracle COM Automation機能を使用するユーザーに接続し、次のように、SQL*Plusプロンプトでcomwrap.sqlスクリプトを実行します。

SQL> CONNECT hr;
Enter password: password
SQL> @ORACLE_BASE\ORACLE_HOME\com\comwrap.sql

前述のコマンドで、ORACLE_BASE\ORACLE_HOMEは、Oracle COM Automation機能のインストール先のOracleホーム・ディレクトリを表しています。

このスクリプトを初めて実行するときに、「ORA-04043: オブジェクトXXXXは存在しません。」というメッセージが数回表示されます。これらは正常なメッセージです。

Java用のOracle COM Automation機能の構成

Java用のOracle COM Automation機能を構成するには、次のようにします。

1. SQL*Plusを使用して、データベースにSYSTEMとして接続します。入力例は次のとおりです。

SQL> CONNECT SYSTEM@net_service_name
Enter password: password

2. Oracle COM Automation機能を使用するユーザーの名前で、grant.sqlスクリプトを実行します。ユーザー名をすべて大文字にする必要がある場合もあります。入力例は次のとおりです。

SQL> @ORACLE_BASE\ORACLE_HOME\com\java\grant.sql HR

3. コマンド・プロンプトで、次のようにloadjavaツールを実行します。

loadjava -force -resolve -user hr         ORACLE_BASE\ORACLE_HOME\com\java\orawcom.jar
Password: password

前述のコマンドで、hrは、Oracle COM Automation機能を使用するユーザーです。

関連項目:
loadjavaツールの詳細は、『Oracle Database Java開発者ガイド』を参照してください。

PL/SQLのリスナーの構成

この項では、PL/SQL用のOracle COM Automation機能で使用する場合の、listener.oraファイルおよびtnsnames.oraファイルの特定の構成について説明します。

注意:
Java用のOracle COM Automation機能では、listener.oraファイルおよびtnsnames.oraファイルに特別な変更を加える必要はありません。

PL/SQL用のOracle COM Automation機能はリスナーのコールアウトに依存しているため、Oracle COM Automation機能を正しく動作させるには、リスナーおよびOracle Netのリモート・プロシージャ・コール(RPC)のメカニズムを構成する必要があります。

次に、外部ストアド・プロシージャをコールするためにプロセス間通信(IPC)で使用できるlistener.oraファイルおよびtnsnames.oraファイルの例を示します。

関連項目:
外部プロシージャ用のlistener.oraおよびtnsnames.oraファイルの構成の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

listener.ora構成ファイル

LISTENER =
(ADDRESS_LIST =
(ADDRESS=
(PROTOCOL= IPC)
(KEY= EXTPROC0)
)
)
STARTUP_WAIT_TIME_LISTENER = 0
CONNECT_TIMEOUT_LISTENER = 10
TRACE_LEVEL_LISTENER = off
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORCL)
)
(SID_DESC =
(SID_NAME = plsextproc)
(PROGRAM=extproc)
)
)
PASSWORDS_LISTENER = (oracle)

tnsnames.ora構成ファイル

EXTPROC_CONNECTION_DATA=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=IPC)
(KEY=EXTPROC0)
)
(CONNECT_DATA=(SID=plsextproc))
)
)

リスナーの問題のトラブルシューティング

「ORA-28575: 外部プロシージャ・エージェントへのRPC接続をオープンできません。」というエラー・メッセージの原因として、2つのリスナーの問題のいずれかが考えられます。

問題1

問題: リスナーが起動されていない。

処置: コントロール パネルまたはコマンド・プロンプトから、OracleHOME_NAMETNSListenerサービスを開始する必要があります。

コントロール パネルからOracleサービスを開始するには、次のようにします。

1. 「スタート」→「設定」→「コントロール パネル」を選択します。
「コントロール パネル」ウィンドウが表示されます。

2. 「サービス」をダブルクリックします。
「サービス」ダイアログ・ボックスが表示されます。

3. リストのOracleHOME_NAMETNSListenerに移動し、その状態が「開始」になっていることを確認します。開始になっていない場合、選択して「開始」をクリックします。

コマンド・プロンプトからOracleサービスを開始するには、次のようにします。

次のコマンドを入力します。

C:\> net start service

前述のコマンドで、serviceの部分には、OracleHOME_NAMETNSListenerのような特定のサービス名を指定します。

問題2

問題: リスナーが正しく構成されていない。

処置: listener.oraファイルおよびtnsnames.oraファイルを変更する必要があります。

関連項目:
これらのファイルの構成方法の詳細は、「PL/SQLのリスナーの構成」を参照してください。

DCOMのサポート

Oracle COM Automation機能は、Distributed Component Object Model(DCOM)を利用したリモートのComponent Object Model(COM)オブジェクトへのネットワーク経由のアクセスをサポートします。

クライアントがリモート・コンピュータへのアクセス権を持つことを認証するために、DCOMは適切なセキュリティ資格証明をリモート・コンピュータに渡します。リモート・コンピュータはセキュリティ資格証明を検証し、DCOMに続行を許可します。

これらのセキュリティ資格証明は、クライアントのリスナー・サービスまたはデータベース・サービスに関連付けられているドメイン・ユーザーの権限に基づきます。表2-1は、PL/SQLおよびJava用のCOM Automationの、決定するサービスを示したものです。

表2-1 セキュリティ資格証明を決定するサービス

COM Automation機能

資格証明を決定するサービス

PL/SQL

リスナー

Java

Oracle Databaseサービス

DCOM用のコンピュータの構成

DCOMを使用するには、次のコンピュータに関するセキュリティ設定を構成する必要があります。

- データベース・インスタンスを実行しているコンピュータ

- リモートのCOMオブジェクトを含むコンピュータ

データベース・インスタンスを実行しているコンピュータの構成

データベース・インスタンスを実行しているコンピュータの構成では、リスナーとデータベース・サービスを同じドメイン・ユーザーに設定する必要があります。

ドメイン・ユーザーへのサービスの設定

設定するサービスは、サービスをドメイン・ユーザーに設定するこの手順の3で選択します。

listenerの設定およびデータベースの設定のために、この手順を2回実行する必要があります。順序は重要ではありません。

サービスをドメイン・ユーザーに設定するには、次のようにします。

1. 「スタート」→「設定」→「コントロール パネル」を選択します。「コントロール パネル」ウィンドウが表示されます。

2. 「サービス」をダブルクリックします。「サービス」ダイアログ・ボックスが表示されます。

3. サービスを選択し、「スタートアップ」をクリックします。このサービスは、OracleHOME_NAMETNSListenerまたはデータベース・サービスである必要があります。

4. 「アカウント」オプションを選択します。

5. ドメイン・ユーザーの名前を入力するか、「...」をクリックしてユーザーを指定します。

6. 選択したドメイン・ユーザーのパスワードを入力し、確認のために再度入力します。

7. 「OK」をクリックして、変更を保存します。

リモート・オブジェクトを含むコンピュータの構成

リモート・オブジェクトを含むコンピュータの構成では、Microsoft社が提供しているdcomcnfg.exeツールを使用して、コンピュータのDCOMセキュリティ設定を構成する必要があります。

このツールを使用して、特定のCOMオブジェクト、またはコンピュータ上のすべてのCOMオブジェクトに対するアクセス権限、起動権限および構成権限を設定できます。

dcomcnfg.exeツールを使用し、次のように設定します。

1. DCOMセキュリティ権限を設定して、ドメイン・ユーザーとして使用する適切なサービス(PL/SQLの場合はリスナー、Javaの場合はデータベース・サービス)が、リモートのCOMオブジェクトをインスタンス化して操作できるようにします。

2. リモートのCOMオブジェクトを、サービスと同じ権限で実行されるように設定します。

COMオブジェクトが権限のないアクションを実行しようとすると、DCOMはその処理を拒否し、Oracle COM Automation機能にセキュリティ違反が返されます。必ずDCOMセキュリティを正しく構成し、必要な権限をOracle Databaseに指定する必要があります。

関連項目:
次の項目の詳細は、Microsoft社のドキュメントを参照してください。

- dcomcnfg.exeツールの使用および関連する権限の意味

- DCOMを使用するクライアントおよびサーバー・コンピュータの設定

3 Oracle COM Automation機能の基本機能

この章では、Oracle COM Automation機能のプログラム・インタフェースについて説明します。

この章の項目は次のとおりです。

- データ型の変換

- HRESULTエラー・コード

- Java用のOracle COM Automationの例外処理

- COM Automationの一般的な機能

- Application Program Interface

- PL/SQL API

- Java API

データ型の変換

Microsoft COM Automation機能ではCOM Automation機能データ型が使用され、Oracle COM Automation機能ではPL/SQLまたはJavaのデータ型が使用されるため、Oracle COM Automation機能では、受け取ったデータを変換してCOM Automation機能オブジェクトに渡す操作を行う必要があります。同様に、Oracle COM Automation機能ではCOM Automation機能オブジェクトから受け取ったデータを渡して変換する必要があります。

PL/SQLのデータ型変換

表3-1は、PL/SQLデータ型とCOM Automationデータ型の間のマッピングを示したものです。

このマニュアルでは、COM Automationデータ型がIN OUTパラメータまたはOUTパラメータとして使用される場合、先頭にpを付けて表記しています。先頭の文字がp以外のデータ型は、INパラメータです。

表3-1 PL/SQLデータ型からCOM Automationデータ型への変換

PL/SQLデータ型

COM Automationデータ型

VARCHAR2

BSTR、pBSTR

BOOLEAN

BOOL、pBOOL

BINARY_INTEGER

DISPATCH、pDISPATCH

DOUBLE PRECISION

UI1、pUI1、I2、pI2、I4、pI4、R4、pR4、R8、pR8、SCODE、pSCODE、CY、pCY、DISPATCH、pDISPATCH

DATE

DATE、pDATE

注意:
Oracleでは、CYおよびpCYの値を-9999999999.9999から9999999999.9999の範囲内に制限しています。

Javaのデータ型変換

表3-2は、サポートされるCOM Automationデータ型およびJavaデータ型への関連マッピングを示したものです。

戻り値のみに適用されるvoidを除き、すべてのデータ型マッピングは、プロパティ、引数および戻り値に適用されます。

表3-2 Javaデータ型からCOM Automationデータ型への変換

Javaデータ型

COM Automationデータ型

boolean

BOOL

char

CHAR

double

DOUBLE

int

INT

long

LONG

float

FLOAT

short

SHORT

byte

BYTE

java.lang.String

BSTR

oracle.win.com.Currency

CURRENCY

java.util.Calendar

DATE

void

VOID(戻り値のみ)

oracle.win.com.Automation

IDispatch*

HRESULTエラー・コード

HRESULTエラー・コードは、Microsoft Windows APIにより提供されています。

HRESULTは、0x800nnnnnという形式の16進数のCOMエラー・コードです。ただし、-214nnnnnnnという10進数形式もあります。たとえば、COMオブジェクトの作成時に不正なオブジェクト名が渡されると、HRESULT値-2147221005(16進形式では0x800401f3)が返されます。

HRESULTリターン・コードの詳細は、Microsoft社のドキュメントを参照してください。

関連項目:
詳細は、「Microsoft COM Automationのエラー」を参照してください。

PL/SQLでのHRESULTの使用

PL/SQL APIは、整数のリターン・コードを返します。成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

関連項目:
Oracle COM Automation機能から返されるリターン・コードの解釈方法の詳細は、「GetLastError」を参照してください。

JavaでのHRESULTの使用

Java APIでは、HRESULTはCOMExceptionクラスのデータ・メンバーです。

関連項目:
「Java用のOracle COM Automationの例外処理」

Java用のOracle COM Automationの例外処理

Java用のOracle COM Automationは、標準のJava例外メカニズムを使用します。具体的には、Java例外クラスoracle.win.com.COMExceptionが、COMエラーを表すために組み込まれています。

この例外は、エラーの発生時にJavaのAutomationクラスでスローされます。

この例外で提供されるエラー情報は、PL/SQL APIのGetLastErrorファンクションで提供される情報と同様です。

注意:
HRESULTデータ・メンバーは、PL/SQLファンクションから返されるHRESULTの値と同じ意味を持ちます。

excepInfoデータ・メンバーで示されるCOMエラーがDISP_E_EXCEPTIONの場合、COMExceptionはsource、description、helpfileおよびhelpidの各データ・メンバーを使用します。それ以外の場合、データ・メンバーは無効です。

COMExceptionは、COMエラーを表すエラー・メッセージをerrmsgデータ・メンバーに書き込みます。

表3-3は、COMExceptionデータ・メンバーと、その説明を示したものです。

表3-3 COMExceptionデータ・メンバー

メンバー

説明

hresult

Windows APIにより定義されているHRESULT値です。

errmsg

適切な言語でのHRESULTのテキスト表現です。

source

例外のsourceで、通常アプリケーション名です。

description

エラーの説明です。

helpfile

エラーの詳細が含まれるhelpfileの完全修飾されたパス名です。

helpid

helpfileで指定されたヘルプ・ファイル内のトピックのヘルプ・コンテキストIDです。

excepInfo

HRESULTがtrueを返す場合、DISP_E_EXCEPTIONで、source、description、helpfileおよびhelpidには詳細情報が含まれます。

コード・サンプル

この例では、COMException例外を示します。

try
{
// Some code that might throw a COMException exception.
}
catch(COMException e)
{
System.out.println(e.toString());
if(e.excepInfo)
{
System.out.println(e.source);
System.out.println(e.description);
System.out.println(e.helpfile);
System.out.println(e.helpid);
}
}

COM Automationの一般的な機能

この項では、Oracle COM Automation機能を使用したソリューションの開発に必要な情報および一般的な開発手順について説明します。

COMオブジェクトに関して必要な情報

使用するCOMオブジェクトに関して次の情報を確認します。

- COMオブジェクトのプログラムIDを決定する必要があります。プログラムID(progID)は、COMオブジェクトを一意に識別する16進数のグローバル一意識別子(GUID)にマップされる説明的な文字列です。
次の文字列は、progIDの例です。

Excel.Worksheet.1

progIDは、COMオブジェクトをインスタンス化するAPIで使用します。

- COMオブジェクトのIDispatchインタフェースを通じて公開されるプロパティとメソッドの種類を知る必要があります。通常、オブジェクトのプロパティの名前とデータ型、およびオブジェクトのメソッドのプロトタイプが記述されたドキュメントがISVから提供されます。プロパティはxposやyposのような説明的な文字列によって参照されます。プロパティにはINTやBSTRなど、任意の標準COM Automationデータ型を使用できます。APIのGetPropertyとSetPropertyは、プロパティ名と適切なデータ型の変数を受け取ります。メソッドはInsertChartのような説明的な文字列によって参照されます。メソッドは、様々な種類のCOM Automationデータ型のパラメータ・セットを受け取り、COM Automationデータ型を返します。
次に示すのは、COMインタフェース定義言語(IDL)の文法で記述された、COM Automationメソッドのプロトタイプの例です。

[id(0x6003000)]
long Post([in, out] long* lngAccountNo,
[in, out] long* lngAmount,
[in, out] BSTR* strResult);

インタフェースは、オブジェクト・メソッドおよびプロパティを定義します。COM IDLを使用し、COMオブジェクトに定義されているインタフェースを指定します。

OLE-COMオブジェクト ビューア

Microsoft社は、ローカル・システム上のCOMオブジェクトのプロパティおよびメソッドの表示用に、Microsoft Visual StudioのOLE-COMオブジェクト ビューアというツールを提供しています。このツールを使用することで、各COMオブジェクトが提供するプロパティとメソッドをすばやく、かつ容易に判断できます。図3-1の例を参照してください。

図3-1 OLE-COMオブジェクト ビューア

「図3-1 OLE-COMオブジェクト ビューア」の説明

COM Automation機能のAPIの使用

Oracle COM Automation機能の代表的な使用例では、JavaクラスまたはPL/SQLブロックを設計し、COMオブジェクトを作成および操作します。クラスまたはコード・ブロックは、次の手順を実行します。

1. COMオブジェクトを次のように作成します。

- PL/SQLでは、CreateObjectを使用します。

- Javaでは、コンストラクタまたはCreateメソッドを使用します。

2. 次のAPIをコールしてCOMオブジェクトを操作します。

- GetPropertyをコールして、プロパティ値を取得します。

- SetPropertyをコールして、プロパティ値を新しい値に設定します。

3. Invokeをコールして、メソッドをコールします。
Invokeコールを準備するには、InitArgとSetArgを使用して、COM Automationメソッドに送られる引数をパッケージ化します。

4. PL/SQLのGetLastErrorをコールして、最新のエラー情報を取得します。

5. PL/SQLのDestroyObjectまたはJavaのDestroyを使用してオブジェクトを破棄します。

Application Program Interface

この項では、Oracle COM Automation機能で使用可能なAPIをリストし、説明します。

PL/SQL API

Oracle COM Automation機能で使用可能なPL/SQL開発用のAPIには、次のようなものがあります。

- CreateObject

- DestroyObject

- GetLastError

- GetProperty

- SetProperty

- InitArg

- InitOutArg

- GetArg

- SetArg

- Invoke

Java API

Oracle COM Automation機能で使用可能なJava開発用のAPIには、次のようなものがあります。

- Automationコンストラクタ

- Automationメソッド

- Create

- Destroy

- GetProperty

- SetProperty

- InitArg

- SetArg

- Invoke

- Currencyコンストラクタ

- Currencyメソッド

- Get

- Set

PL/SQL API

この項では、COM Automationインタフェースを使用してCOMオブジェクトを操作するためのPL/SQL APIについて説明します。これらのPL/SQLストアド・プロシージャはそれぞれORDCOMパッケージに含まれています。

CreateObject

このAPIは、COM Automationサーバー内のCOMオブジェクトをインスタンス化します。

構文

FUNCTION CreateObject(progid VARCHAR2, reserved BINARY_INTEGER, servername VARCHAR2,
objecttoken OUT BINARY_INTEGER) RETURN BINARY_INTEGER;

パラメータ

説明

progid

作成するCOM Automationオブジェクトのプログラム識別子(progID)です。この文字列は、COM Automationオブジェクトのクラスを説明し、形式は次のとおりです。
COMComponent.Object

COMComponentはCOM Automationサーバーのコンポーネント名、ObjectはCOM Automationオブジェクトの名前です。指定されたCOM Automationオブジェクトは作成可能である必要があり、またIDispatchインタフェースをサポートしている必要があります。

reserved

将来の使用のために現在予約されているパラメータ。値0を渡してください。このパラメータは、今後のバージョンのOracle COM Automation機能で使用する可能性があります。

servername

COMオブジェクトがインスタンス化されるリモートDCOMサーバーの名前。
名前を明示的に指定すると、Oracle COM Automation機能はリモート・コンピュータ上でCOMオブジェクトのインスタンス化を試みます。のような空の文字列を渡すと、Oracle COM Automation機能はレジストリをチェックし、COMオブジェクトの場所を調べます。レジストリ情報は、COMオブジェクトがローカルかリモートかを示します。したがって、ローカルのCOMオブジェクトを作成する場合は、常に空の文字列を渡して、COMオブジェクトがローカルに存在することをレジストリが示していることを確認します。COMオブジェクトのレジストリ情報は、ツールdcomcnfg.exeを使用して構成できます。

objecttoken

返されるオブジェクト・トークン。データ型BINARY_INTEGERのローカル変数である必要があります。このオブジェクト・トークンは、作成されたCOM Automation機能オブジェクトを識別し、他のOracle COM Automation機能 APIコールで使用されます。

備考

作成されたCOM Automationオブジェクトは、対応するDestroyObjectのコールによって解放されます。このコールにより、Oracle COM Automation機能内でのオブジェクトの内部表現が破棄され、オブジェクトに関連付けられたすべてのインタフェースが解放されます。

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

コード・サンプル

HRESULT BINARY_INTEGER;
applicationToken BINARY_INTEGER:=-1;

HRESULT :=ORDCOM.CreateObject('Excel.Application', 0, '', applicationToken);
IF (HRESULT!=0) THEN
dbms_output.put_line(HRESULT);
END IF;

DestroyObject

このAPIは、作成されたCOM Automationオブジェクトを破棄します。

構文

FUNCTION DestroyObject(objecttoken BINARY_INTEGER) RETURN BINARY_INTEGER;

パラメータ

説明

objecttoken

事前にCreateObjectによって作成されたCOM Automationオブジェクトのオブジェクト・トークン。

備考

DestroyObjectをコールすると、Oracle COM Automation機能内でのオブジェクトの内部表現が破棄され、オブジェクトに関連付けられたすべてのインタフェースが解放されます。

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

コード・サンプル

HRESULT BINARY_INTEGER;
applicationToken BINARY_INTEGER:=-1;

/* Assume applicationToken is initialized. */

HRESULT:=ORDCOM.DestroyObject(applicationToken);
IF (HRESULT!=0) THEN
dbms_output.put_line(HRESULT);

GetLastError

このAPIは、最後に発生したエラーについてのCOM Automationエラー情報を取得します。

構文

FUNCTION GetLastError(source OUT VARCHAR2, description OUT VARCHAR2, helpfile OUT VARCHAR2,
helpid OUT BINARY_INTEGER) RETURN BINARY_INTEGER;

パラメータ

説明

source

エラー情報のソース。指定する場合、この値はCHAR型またはVARCHAR型のローカル変数である必要があります。戻り値は必要に応じて、ローカル変数として適切な値になるよう切り捨てられます。

description

エラーの説明。指定する場合、この値はCHAR型またはVARCHAR型のローカル変数である必要があります。戻り値は必要に応じて、ローカル変数として適切な値になるよう切り捨てられます。

helpfile

COM Automationオブジェクトについてのヘルプ・ファイル。指定する場合、この値はCHAR型またはVARCHAR型のローカル変数である必要があります。戻り値は必要に応じて、ローカル変数として適切な値になるよう切り捨てられます。

helpid

ヘルプ・ファイルのコンテキストID。指定する場合、この値はINT型のローカル変数である必要があります。

備考

(GetLastErrorを除く)Oracle COM Automation機能 APIコールごとにエラー情報がリセットされるため、GetLastErrorでは、最新のOracle COM Automation機能 APIコールに対するエラー情報のみが取得されます。GetLastErrorでは最後のエラー情報がリセットされないため、同じエラー情報が取得するために何度もコールできます。

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

このファンクションによって返される可能性のあるエラーの種類については、「Microsoft COM Automationのエラー」を参照してください。

コード・サンプル

HRESULT BINARY_INTEGER;
applicationToken BINARY_INTEGER:=-1;
error_src VARCHAR2(255);
error_description VARCHAR2(255);
error_helpfile VARCHAR2(255);
error_helpID BINARY_INTEGER;

HRESULT:=ORDCOM.CreateObject('Excel.Application', 0, '', applicationToken);
IF (HRESULT!=0) THEN
ORDCOM.GetLastError(error_src, error_description, error_helpfile,
error_helpID);
dbms_output.put_line(error_src);
dbms_output.put_line(error_description);

dbms_output.put_line(error_helpfile);
END IF;

GetProperty

このAPIは、COM Automationオブジェクトのプロパティ値を返します。

構文

FUNCTION GetProperty(objecttoken BINARY_INTEGER, propertyname VARCHAR2, argcount BINARY_INTEGER,
propertyvalue OUT any_PL/SQL_data type) RETURN BINARY_INTEGER;

パラメータ

説明

objecttoken

事前にCreateObjectによって作成されたCOMオブジェクトのオブジェクト・トークン。

propertyname

返されるCOMオブジェクトのプロパティ名。

argcount

プロパティ配列のインデックス。プロパティが配列でない場合、この値には0を指定する必要があります。

propertyvalue

返されるプロパティ値。返されるプロパティの型は、返されるCOM Automationのデータ型によって異なります。COM AutomationプロパティのCOM Automationデータ型に対応するPL/SQLデータ型を渡す必要があります。そのようにしないと、COM Automation機能によってCOM Automation機能データ型が適切に変換されません。

any_PL/SQL_data type

COM Automation機能でサポートされる任意のデータ型。

備考

プロパティがCOMオブジェクトを返す場合、propertyvalueパラメータにデータ型BINARY_INTEGERのローカル変数を指定する必要があります。オブジェクト・トークンはローカル変数に格納され、このオブジェクト・トークンは他のCOM Automationストアド・プロシージャとともに使用できます。

プロパティが配列を返すとき、propertyvalueを指定するとその値はNULLに設定されます。

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

コード・サンプル

/*
* This is an excerpt from a Microsoft Excel application.
*/

HRESULT BINARY_INTEGER;
ChartObject BINARY_INTEGER := -1;
ChartToken BINARY_INTEGER := -1;

/* Assume ChartObject is initialized. */

HRESULT := ORDCOM.GetProperty(ChartObject, 'Chart', 0, ChartToken);
IF (HRESULT!=0) THEN
dbms_output.put_line(HRESULT);
END IF;

SetProperty

このAPIは、COM Automationオブジェクトのプロパティを新しい値に設定します。

構文

FUNCTION SetProperty(objecttoken BINARY_INTEGER, propertyname VARCHAR2, newvalue any_PL/SQL_data type,
data type VARCHAR2) RETURN BINARY_INTEGER;

パラメータ

説明

objecttoken

事前にCreateObjectによって作成されたCOM Automationオブジェクトのオブジェクト・トークン。

propertyname

新しい値を設定するCOMオブジェクトのプロパティ名。

newvalue

プロパティの新しい値。この値は適切なデータ型の値である必要があります。

data type

渡される値の、明示的に指定されるデータ型。使用可能なデータ型は、次のとおりです。

- UI1: バイト整数

- I2: 2バイト整数

- I4: 4バイト整数

- R4: IEEE 4バイト実数

- R8: IEEE 8バイト実数

- SCODE: エラー・コード

- CY: 通貨(-9999999999.9999から9999999999.9999の値)
(Oracleの制限)

- DISPATCH: ディスパッチ・ポインタ

- BSTR: 文字列

- BOOL: ブール

- DATE: 日付

any_PL/SQL_data type

COM Automation機能でサポートされる任意のデータ型。

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

コード・サンプル

/*
* This is an excerpt from a Microsoft Excel application.
*/

HRESULT BINARY_INTEGER;
RangeToken BINARY_INTEGER := -1;

/* Assume RangeToken is initialized. */

HRESULT := ORDCOM.SetProperty(RangeToken, 'Value', 'EmpNo', 'BSTR');
IF (HRESULT!=0) THEN
dbms_output.put_line(HRESULT);
END IF;

InitArg

このAPIは、Invokeコールに渡されるパラメータ・セットを初期化します。

構文

PROCEDURE InitArg();

備考

InitArgのコールにより、パラメータ・セットが初期化されます。InitArgのコール後、SetArgをコールすることにより、最初のパラメータが指定の値に設定されます。SetArgの2回目のコールでは、パラメータ・リストの2番目のパラメータが設定されます。以後のコールにより、パラメータ・リストのn番目のパラメータが設定されます(nは、InitArgのコール後にSetArgがコールされた回数です)。InitArgを再度コールすると、引数リストがリセットされ、SetArgをコールすると、最初のパラメータが再度設定されます。

コード・サンプル

「Invoke」の項を参照してください。

InitOutArg

InitOutArgは、GetArgを使用してOUTおよびIN OUTパラメータの値を取得する準備として、COMメソッドがコールされた後にコールする必要があります。InitOutArgのコール後、GetArgの最初のコールで最初のOUTパラメータまたはIN OUTパラメータの値が取得され、2回目のGetArgコールで2番目のOUTパラメータまたはIN OUTパラメータが取得されます(以降も同様に取得されます)。InitOutArgを再度コールすると、このプロセスが再度開始されます。

構文

PROCEDURE InitOutArg();

備考

INパラメータおよびOUTパラメータの詳細は、「SetArg」のSetArgデータ型に関する記載を参照してください。

コード・サンプル

「Invoke」の項を参照してください。

GetArg

COMメソッドがコールされた後にOUTパラメータおよびIN OUTパラメータの引数を取得します。

構文

PROCEDURE GetArg(data OUT any_PL/SQL_data type, type VARCHAR2);

パラメータ

説明

data

COMメソッドがコールされた後のOUTパラメータまたはIN OUTパラメータの値。

type

パラメータのCOM Automationデータ型。

使用可能なデータ型は、次のとおりです。

- pUI1: バイト整数

- pI2: 2バイト整数

- pI4: 4バイト整数

- pR4: IEEE 4バイト実数

- pR8: IEEE 8バイト実数

- pSCODE: エラー・コード

- pCY: 通貨(-9999999999.9999から9999999999.9999の値)(Oracleの制限)

- pDISPATCH: ディスパッチ・ポインタ

- pBSTR: 文字列

- pBOOL: ブール

- pDATE: 日付

any_PL/SQL_data type

COM Automation機能でサポートされる任意のデータ型。

備考

INパラメータおよびOUTパラメータの詳細は、「SetArg」のSetArgデータ型に関する記載を参照してください。

コード・サンプル

「Invoke」の項を参照してください。

SetArg

このAPIを使用して、Invokeを次回コールするためのパラメータ・リストを構成します。

SetArgは、渡されるパラメータの値を設定します。

構文

PROCEDURE SetArg(paramvalue any_PL/SQL_data type, data type VARCHAR2);

パラメータ

説明

paramvalue

Invokeコールに渡されるパラメータの値。設定されるパラメータは、パラメータ・リスト中のn番目のパラメータです(nは、InitArgのコール後にSetArgがコールされた回数です)。

data type

明示的に指定されるパラメータのデータ型。
先頭の文字がpのデータ型は、IN OUTパラメータまたはOUTパラメータです。pは、COM Automationデータ型に対してVT_BYREFフラグが設定されることを示します。

先頭の文字がp以外のデータ型は、INパラメータです。使用可能なデータ型は、次のとおりです。

- UI1: バイト整数

- pUI1: バイト整数

- I2: 2バイト整数

- pI2: 2バイト整数

- I4: 4バイト整数

- pI4: 4バイト整数

- R4: IEEE 4バイト実数

- pR4: IEEE 4バイト実数

- R8: IEEE 8バイト実数

- pR8: IEEE 8バイト実数

- SCODE: エラー・コード

- pSCODE: エラー・コード

- CY: 通貨(-9999999999.9999から9999999999.9999の値)
(Oracleの制限)

- pCY: 通貨(-9999999999.9999から9999999999.9999の値)
(Oracleの制限)

- DISPATCH: ディスパッチ・ポインタ

- pDISPATCH: ディスパッチ・ポインタ

- BSTR: 文字列

- pBSTR: 文字列

- BOOL: ブール

- pBOOL: ブール

- DATE: 日付

- pDATE: 日付

any_PL/SQL_data type

COM Automation機能でサポートされる任意のデータ型。

備考

各SetArgプロシージャによってn番目のパラメータ値が設定されます。InitArgのコールにより、パラメータ・セットが初期化されます。InitArgのコール後、SetArgをコールすることにより、最初のパラメータが指定の値に設定されます。SetArgの2回目のコールでは、パラメータ・リストの2番目のパラメータが設定されます。以後のコールにより、パラメータ・リストのn番目のパラメータが設定されます(nは、InitArgのコール後にSetArgがコールされた回数です)。InitArgを再度コールすると、引数リストがリセットされ、SetArgをコールすると、最初のパラメータが再度設定されます。

先頭の文字がp以外のデータ型は、INパラメータです。先頭の文字がpのデータ型は、IN OUTパラメータまたはOUTパラメータです。

コード・サンプル

「Invoke」の項を参照してください。

Invoke

このAPIは、COM Automationオブジェクトのメソッドをコールします。このファンクションでは、COM Automationメソッドへの入力値として、InitArgおよびSetArgのコールによって事前に作成されたパラメータ・リストが使用されます。

構文

FUNCTION Invoke(objecttoken BINARY_INTEGER, methodname VARCHAR2, argcount BINARY_INTEGER,
returnvalue OUT any_PL/SQL_data type) RETURN BINARY_INTEGER;

パラメータ

説明

objecttoken

事前にCreateObjectによって作成されたCOM Automationオブジェクトのオブジェクト・トークン。

methodname

コールするCOM Automationオブジェクトのメソッド名。

argcount

COM Automationオブジェクトのメソッドに渡される引数の数。

returnvalue

COM Automationオブジェクトのメソッドの戻り値。指定される場合、この値は適切なデータ型のローカル変数である必要があります。

any_PL/SQL_data type

COM Automation機能でサポートされる任意のデータ型。

備考

ファンクションの戻り値がCOMオブジェクトである場合、開発者は、returnvalueパラメータに対してBINARY_INTEGERデータ型のローカル変数を指定する必要があります。オブジェクト・トークンはローカル変数に格納され、このオブジェクト・トークンは、他のOracle COM Automation機能 APIで使用できます。

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

コード・サンプル

/*
* Following is the IDL definition of the COM Automation method
* being called:
*
* HRESULT TestOutArg([in, out] short *x1,
* [in] short x2,
* [out] short *x3,
* [out, retval] short *x4);
*/

HRESULT BINARY_INTEGER := -1;
applicationToken BINARY_INTEGER := -1;
x1 DOUBLE PRECISION := 12;
x2 DOUBLE PRECISION := 7;
x3 DOUBLE PRECISION := 0;
x4 DOUBLE PRECISION := 0;

/* Assume applicationToken is initialized. */

ORDCOM.InitArg();
ORDCOM.SetArg(x1, 'pI2');
ORDCOM.SetArg(x2, 'I2');
ORDCOM.SetArg(x3, 'pI2');

HRESULT := ORDCOM.Invoke(applicationToken, 'TestOutArg', 3, x4);
IF (HRESULT!=0) THEN
dbms_output.put_line(HRESULT);
END IF;

ORDCOM.InitOutArg();
ORDCOM.GetArg(x1, 'pI2');
ORDCOM.GetArg(x3, 'pI2');

Java API

この項では、COM Automationインタフェースを使用してCOMオブジェクトを操作するためのJava APIについて説明します。これらのAPIは、JavaのAutomationクラスおよびCurrencyクラスにあります。

JavaのAutomationクラスを使用し、COM AutomationをサポートするCOMオブジェクトにアクセスできます。このJavaクラスでは、COMオブジェクトを作成し、COMオブジェクトのIDispatchインタフェースへのポインタを取得できます。さらに、COMオブジェクトに対してプロパティを取得および設定できる他、COMオブジェクトに対して(引数あり、または引数なしで)メソッドをコールできます。このクラスは、COMオブジェクトのラッパーを提供するため、COMオブジェクトまたはそのIDispatchインタフェースには直接アクセスしません。

JavaクラスCurrencyは、COM Automationデータ型のCURRENCYに相当します。CURRENCYは8バイトの数値で、最後の4桁は値の小数部を表します。たとえば、12345という数値は、実際には1.2345という値を表します。CURRENCYの範囲は、(+/-)922337203685477.5807です。

COMオブジェクト参照カウンティング

COMオブジェクト・インタフェース参照カウンティングは内部的に処理され、IUnknown::AddRef()およびIUnknown::Release()は公開されません。ユーザーは、COMオブジェクト・インタフェースを明示的にアドレス指定できません。特定のCOMオブジェクトの存続期間は、関連するJavaコンストラクタまたはCreateメソッドがコールされたときに開始し、対応するDestroyメソッドがコールされたときに解放されます。

コンストラクタおよびデストラクタ

デフォルトのコンストラクタはCOMオブジェクトを作成しません。COMオブジェクトを作成するには、2つの方法があります。

- デフォルトのコンストラクタを使用してJavaオブジェクトをインスタンス化し、Createメソッドの1つをコールします。使用するCreateメソッドは、サーバー名を指定するかどうかによって決まります。後でDestroyメソッドをコールし、COMオブジェクトを解放する必要があります。
Createメソッドはいつでもコールできますが、COMオブジェクトが以前にデフォルト以外のコンストラクタの1つまたはCreateメソッドを介して作成された場合は、最初にDestroyメソッドをコールする必要があります。

- デフォルト以外のコンストラクタを使用してJavaオブジェクトをインスタンス化します。使用するデフォルト以外のコンストラクタは、サーバー名を指定するかどうかによって決まります。後でDestroyメソッドをコールし、COMオブジェクトを解放する必要があります。

COMオブジェクト・エラーの処理

すべてのCOMエラーはJavaの例外にマップされます。ユーザーは、Javaの例外処理メカニズムによりCOMオブジェクト・エラーを捕捉できます。

注意:
Java用のOracle COM Automation機能では、インプロセスCOM Automation機能サーバーを使用できません。開発者は、dllhostを使用し、インプロセス・サーバーをサポートできます。

Automationコンストラクタ

このAPIは、COMオブジェクトを作成します。

構文

public Automation()
public Automation(String progID)
public Automation(String progID, String serverName)

パラメータ

説明

progID

作成するCOM Automationオブジェクトのプログラム識別子(progID)です。この文字列は、COM Automationオブジェクトのクラスを説明し、形式は次のとおりです。
COMComponent.Object

COMComponentはCOM Automationサーバーのコンポーネント名、ObjectはCOM Automationオブジェクトの名前です。指定されたCOM Automationオブジェクトは作成可能である必要があり、またIDispatchインタフェースをサポートしている必要があります。

serverName

COMオブジェクトがインスタンス化されるリモートDCOMサーバーの名前。

名前を明示的に指定すると、Oracle COM Automation機能はリモート・コンピュータ上でCOMオブジェクトのインスタンス化を試みます。

備考

デフォルトのコンストラクタpublic Automation()は何も行いません。このコンストラクタはCreateメソッドで使用されます。

progIDパラメータのみを受け取るコンストラクタを使用すると、Oracle COM Automation機能はCOMオブジェクトの場所についてレジストリをチェックします。レジストリ情報は、COMオブジェクトがローカルかリモートかを示します。

デフォルト以外のコンストラクタを使用して作成されたCOM Automationオブジェクトは、対応するDestroyのコールによって解放されます。このコールにより、Oracle COM Automation機能内でのオブジェクトの内部表現が破棄され、オブジェクトに関連付けられたすべてのインタフェースが解放されます。

Java用のOracle COM Automation機能では、インプロセスCOM Automation機能サーバーを使用できません。開発者は、dllhostを使用し、インプロセス・サーバーをサポートできます。

エラーが発生した場合は、例外COMExceptionがスローされます。

コード・サンプル

次のコード・サンプルは、デフォルト以外のコンストラクタを示しています。

// Use the registry to determine where to create the COM object.
Automation word = new Automation("Word.Basic");

// Create the COM object on the specified server.
Automation excel = new Automation("Excel.Application",
"\\ServerName");

// Free the COM objects.
word.Destroy();
excel.Destroy();

Create

このAPIは、COM Automationサーバー内のCOMオブジェクトをインスタンス化します。

構文

public void Create(String progID)
public void Create(String progID, String serverName)

パラメータ

説明

progID

作成するCOM Automationオブジェクトのプログラム識別子(progID)です。この文字列は、COM Automationオブジェクトのクラスを説明し、形式は次のとおりです。
COMComponent.Object

COMComponentはCOM Automationサーバーのコンポーネント名、ObjectはCOM Automationオブジェクトの名前です。指定されたCOM Automationオブジェクトは作成可能である必要があり、またIDispatchインタフェースをサポートしている必要があります。

serverName

COMオブジェクトがインスタンス化されるリモートDCOMサーバーの名前。

名前を明示的に指定すると、Oracle COM Automation機能はリモート・コンピュータ上でCOMオブジェクトのインスタンス化を試みます。

備考

Createメソッドで作成されたCOM Automationオブジェクトは、対応するDestroyのコールによって解放されます。このコールにより、Oracle COM Automation機能内でのオブジェクトの内部表現が破棄され、オブジェクトに関連付けられたすべてのインタフェースが解放されます。

progIDパラメータのみを受け取るコンストラクタを使用すると、Oracle COM Automation機能はCOMオブジェクトの場所についてレジストリをチェックします。レジストリ情報は、COMオブジェクトがローカルかリモートかを示します。

Java用のOracle COM Automation機能では、インプロセスCOM Automation機能サーバーを使用できません。開発者は、dllhostを使用し、インプロセス・サーバーをサポートできます。

エラーが発生した場合は、例外COMExceptionがスローされます。

コード・サンプル

// Use the default constructor.
Automation word = new Automation();
Automation excel = new Automation();

// Use the registry to determine where to create the COM object.
word.Create("Word.Basic");

// Create the COM object on the specified server system.
excel.Create("Excel.Application", "\\ServerName");

// Free the COM objects.
word.Destroy();
excel.Destroy();

Destroy

このAPIは、作成されたCOM Automationオブジェクトを破棄します。

構文

public void Destroy()

備考

Destroyをコールすると、Oracle COM Automation機能内でのオブジェクトの内部表現が破棄され、オブジェクトに関連付けられたすべてのインタフェースが解放されます。

コード・サンプル

「Create」の項を参照してください。

GetProperty

このAPIは、COM Automationオブジェクトのプロパティ値を取得します。

構文

public allowed_type GetProperty(String propName, allowed_type[] propVal)

パラメータ

説明

propName

返されるCOMオブジェクトのプロパティ名。

propVal

返されるプロパティ値。返されるプロパティの型は、返されるCOM Automationの型によって異なります。プロパティを返すためにアクセスされる要素は最初の要素のみですが、配列は少なくとも1つの要素を保持できる大きさである必要があります。

allowed_type

次のリストのいずれかの型。

- boolean

- byte

- char

- short

- int

- long

- float

- double

- java.long.String

- oracle.win.com.Automation

- oracle.win.com.Currency

- java.util.Calendar

備考

プロパティがCOMオブジェクトの場合は、oracle.win.com.Automationのallowed_typeを使用して取得できます。返されるオートメーションJavaオブジェクトは、プロパティの取得と設定、およびプロパティに対するメソッドのコールに使用できます。

GetPropertyは、GetPropertyメソッドをオーバーロードするために、配列パラメータを使用してプロパティ値を返します。プロパティ値が戻り値として返された場合はオーバーロードできません。配列は、outパラメータを持たないJavaが原因で発生する問題を解決します。

プロパティは、便宜上戻り値として返されます。

エラーが発生した場合は、例外COMExceptionがスローされます。

コード・サンプル

// A Microsoft Excel ChartObject object.
Automation chartObject = null;
// A Microsoft Excel Chart object.
Automation chart = null;
// Used for properties of type Automation.
Automation[] autoProp = { null };

// Assume the Microsoft Excel ChartObject object is initialized.

// Get the Chart property.
chartObject.GetProperty("Chart", autoProp);
chart = autoProp[0];

// Set the Chart property.
chartObject.SetProperty("Chart", chart);

SetProperty

このAPIは、COM Automationオブジェクトのプロパティを新しい値に設定します。

構文

public void SetProperty(String propName, allowed_type propVal)

パラメータ

説明

propName

新しい値を設定するCOMオブジェクトのプロパティ名。

propVal

プロパティの新しい値。この値は適切なデータ型の値である必要があります。

allowed_type

次のリストのいずれかの型。

- boolean

- byte

- char

- short

- int

- long

- float

- double

- java.long.String

- oracle.win.com.Automation

- oracle.win.com.Currency

- java.util.Calendar

備考

プロパティがCOMオブジェクトの場合は、oracle.win.com.Automationのallowed_typeを使用して設定できます。プロパティ値は、有効なオートメーションJavaオブジェクトである必要があります。

エラーが発生した場合は、例外COMExceptionがスローされます。

コード・サンプル

「GetProperty」の項を参照してください。

InitArg

このAPIは、Invokeコールに渡されるパラメータ・セットを初期化します。

構文

public void InitArg()

備考

InitArgコールは、パラメータ・セットを初期化し、COMメソッドがパラメータを取らない場合でもコールする必要があります。InitArgのコール後、SetArgをコールすることにより、最初のパラメータが指定の値に設定されます。SetArgの2回目のコールでは、パラメータ・リストの2番目のパラメータが設定されます。以後のコールにより、パラメータ・リストのn番目のパラメータが設定されます(nは、InitArgのコール後にSetArgがコールされた回数です)。InitArgを再度コールすると、引数リストがリセットされ、SetArgをコールすると、最初のパラメータが再度設定されます。

コード・サンプル

「Invoke」の項を参照してください。

SetArg

このAPIを使用して、Invokeを次回コールするためのパラメータ・リストを構成します。

構文

public void SetArg(allowed_type val)

パラメータ

説明

val

Invokeコールに渡されるパラメータの値。設定されるパラメータは、パラメータ・リスト中のn番目のパラメータです(nは、InitArgのコール後にSetArgがコールされた回数です)。

allowed_type

次のリストのいずれかの型。

- boolean

- byte

- char

- short

- int

- long

- float

- double

- java.long.String

- oracle.win.com.Automation

- oracle.win.com.Currency

- java.util.Calendar

備考

パラメータがCOMオブジェクトの場合、対応する引数のallowed_typeはoracle.win.com.Automationである必要があります。引数は、有効なオートメーションJavaオブジェクトである必要があります。

この時点で例外はスローされません。ただし、エラーが発生した場合、たとえば不正な引数の型が渡された場合は、Invokeメソッドがコールされたときにエラーが捕捉されます。

コード・サンプル

「Invoke」の項を参照してください。

Invoke

COM Automationオブジェクトのメソッドをコールします。このファンクションでは、COM Automationメソッドへの入力値として、InitArgおよびSetArgへのコールによって事前に作成されたパラメータ・リストが使用されます。

構文

public void Invoke(String methodName, allowed_type[] retVal)
public void Invoke(String methodName)

パラメータ

説明

methodName

コールするCOM Automationオブジェクトのメソッド名。

retVal

COM Automationオブジェクトのメソッドの戻り値。指定される場合、この値は適切なデータ型のローカル変数である必要があります。プロパティを返すためにアクセスされる要素は最初の要素のみですが、配列は少なくとも1つの要素を保持できる大きさである必要があります。

allowed_type

次のリストのいずれかの型。

- boolean

- byte

- char

- short

- int

- long

- float

- double

- java.long.String

- oracle.win.com.Automation

- oracle.win.com.Currency

- java.util.Calendar

備考

COMメソッドが戻り値としてCOMオブジェクトを返す場合、戻り値のallowed_typeはoracle.win.com.Automationです。返されるオートメーションJavaオブジェクトは、プロパティの取得と設定、および戻り値に対するメソッドのコールに使用できます。

Invokeメソッドをオーバーロードするには、Invokeが配列パラメータを使用してCOMオブジェクト・メソッドの値を返す必要があります。プロパティ値が戻り値として返された場合はオーバーロードできません。配列は、outパラメータを持たないJavaが原因で発生する問題を解決します。

1つのパラメータのみを受け取るInvokeのpublic void Invoke(String methodName)は、戻り値がvoid型のCOMオブジェクト・メソッドで使用されます。

プロパティは、便宜上戻り値として返されます。

エラーが発生した場合は、例外COMExceptionがスローされます。

コード・サンプル

// A Microsoft Excel Worksheet object.
Automation workSheet = null;
// A Microsoft Excel ChartObjects collection object.
Automation chartObjects = null;
// A Microsoft Excel ChartObject object.
Automation chartObject = null;
// Used for return values of type Automation.
Automation[] autorv = { null };
// Dimensions for a Microsoft Excel ChartObject object.
short xpos = 100, ypos = 30, width = 400, height = 250;

// Assume the Microsoft Excel Worksheet object is initialized.

// Invoke a method that takes no arguments.
workSheet.InitArg();
workSheet.Invoke("ChartObjects", autorv);
chartObjects = autorv[0];

// Invoke a method that takes multiple arguments.
chartObjects.InitArg();
chartObjects.SetArg(xpos);
chartObjects.SetArg(ypos);
chartObjects.SetArg(width);
chartObjects.SetArg(height);
chartObjects.Invoke("Add", autorv);
chartObject = autorv[0];

Currencyコンストラクタ

このAPIは、Javaオブジェクトcurrencyを作成します。

構文

public Currency(long value)

パラメータ

説明

value

8バイトのCURRENCY数値

Get

このAPIは、8バイトのCURRENCY数値を取得します。

構文

public long Get()

備考

8バイトのCURRENCY数値を返します。

Set

このAPIは、8バイトのCURRENCY数値を設定します。

構文

public void Set(long value)

パラメータ

説明

value

8バイトのCURRENCY数値

4 Oracle COM Automation PL/SQLデモ

この章では、PL/SQL用のOracle COM Automation機能のデモ・プログラムの使用方法について説明します。

この章の項目は次のとおりです。

- PL/SQL用Oracle COM Automation機能のデモの概要

- Microsoft Wordデモ

- Microsoft Excelデモ

- Microsoft PowerPointデモ

- MAPIデモ

PL/SQL用Oracle COM Automation機能のデモの概要

PL/SQL用のOracle COM Automation機能には、Oracle COM Automation機能を使用してソリューションを開発する方法を示す例が含まれています。これらのデモは基本機能を提供し、COM Automationを使用するカスタマイズされた複雑なアプリケーションを作成する基礎として機能します。デモは、サンプル・スキーマで使用可能な人事スキーマに基づいています。

それぞれのデモでは、COM Automationを使用して簡単な操作を行うための基本的なAPIのセットを提供しています。それぞれのCOM Automationサーバー(WordやExcelなど)は、デモAPIを通じて提供されるものよりもさらに高度な機能を提供します。これらの高度な機能を利用するためには、独自のPL/SQLプロシージャを設計し、コーディングする必要があります。

このリリースでは、COM Automationでは次のデモが提供されています。

- Microsoft Wordデモ: Microsoft WordとOracle Databaseの間でデータを交換します。

- Microsoft Excelデモ: Microsoft ExcelとOracle Databaseの間でデータを交換します。

- Microsoft PowerPointデモ: Microsoft PowerPointとOracle Databaseの間でデータを交換します。

- MAPIデモ: Messaging Application Programming Interface(MAPI)準拠アプリケーションとOracle Databaseの間でデータを交換します。

Microsoft Wordデモ

次の各項では、Microsoft Wordデモのインストール方法と、このデモで提供されているAPIについて説明します。このデモは、Oracle DatabaseとMicrosoft Wordを使用して開発できるソリューションの例として提供されています。

デモでは、データベース内の従業員の名前を含むMicrosoft Wordドキュメントを作成します。

Microsoft Wordデモは、次のものを提供します。

- ORDWord(Microsoft Wordを操作するいくつかのAPIを公開するPL/SQLパッケージです)。このパッケージは、wordsol.sqlスクリプトによって作成されます。

- worddem.sql(Oracle DatabaseとMicrosoft Wordの間でのデータ交換機能を示すスクリプトです)。EMPLOYEES表およびJOBS表からMicrosoft Wordドキュメントにデータを交換します。これらの表は、サンプル・スキーマ内の人事スキーマにあります。

Microsoft Wordデモのインストール

このデモをインストールする前に、ローカル・コンピュータ上にMicrosoft Wordがインストールされている必要があります。

Microsoft Wordデモをインストールするには、次のようにします。

1. SQL*Plusを起動します。

C:\> sqlplus /NOLOG

2. Microsoft Wordデモを使用するユーザーのアカウントで、Oracle Databaseのインスタンスに接続します。入力例は次のとおりです。

SQL> connect hr
Enter password: password

3. SQL*Plusプロンプトから、wordsol.sqlスクリプトを実行します。

SQL> @ORACLE_BASE\ORACLE_HOME\com\demos\wordsol.sql;

このスクリプトにより、現行のユーザーのスキーマ内にORDWordパッケージが作成されます。このスクリプトを初めて実行するときに、次のエラーが数回発生します。

ORA-04043: object XXXX does not exist.

これらは正常なメッセージです。

Microsoft Wordデモの使用方法

Microsoft Wordデモを使用するには、次のようにします。

1. SQL*Plusプロンプトから、worddem.sqlスクリプトを実行します。

SQL> @ORACLE_BASE\ORACLE_HOME\com\demos\worddem.sql;

このスクリプトにより、C:\ディレクトリにMicrosoft Wordドキュメント(worddemo.doc)が作成されます。このドキュメントには、EMPLOYEES表およびJOBS表から取得されたデータが含まれています。これらの表は、サンプル・スキーマ内の人事スキーマにあります。

2. worddemo.docファイルを開いて、その内容を確認します。

基本機能

次の各項では、Microsoft Wordデモで提供されるAPIについて説明します。これらのAPIは基本的な機能であり、Microsoft WordがCOM Automationを通じて提供するすべての機能を示すものではありません。

CreateWordObject

このAPIは、Microsoft Wordオートメーション・サーバー内のWord.Basicオブジェクトをインスタンス化します。

構文

FUNCTION CreateWordObject() RETURN BINARY_INTEGER;

備考

このファンクションがコールされるまでの間は、他のどのような操作も実行できません。このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

FileNew

このAPIは、新規のMicrosoft Wordドキュメントを作成します。

構文

FUNCTION FileNew() RETURN BINARY_INTEGER;

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

FileLoad

このAPIは、ドキュメントをMicrosoft Wordにロードします。

構文

FUNCTION FileLoad(filename VARCHAR2) RETURN BINARY_INTEGER;

パラメータ

説明

filename

ドキュメントの完全修飾ファイル名

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

FileSave

このAPIは、現行のMicrosoft Wordドキュメントをディスクに保存します。

構文

FUNCTION FileSave() RETURN BINARY_INTEGER;

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

FileSaveAs

このAPIは、現行のMicrosoft Wordドキュメントを特定のファイルに保存します。

構文

FUNCTION FileSaveAs(filename VARCHAR2) RETURN BINARY_INTEGER;

パラメータ

説明

filename

ドキュメントの完全修飾ファイル名

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

FileClose

このAPIは、現行のMicrosoft Wordドキュメントを閉じます。

構文

FUNCTION FileClose() RETURN BINARY_INTEGER;

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

InsertText

このAPIは、現行のMicrosoft Wordドキュメントにテキスト文字列を挿入します。

構文

FUNCTION InsertText(textstr VARCHAR2) RETURN BINARY_INTEGER;

パラメータ

説明

textstr

ドキュメントに挿入されるテキスト

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

InsertNewLine

このAPIは、現行のMicrosoft Wordドキュメントに新しい行を挿入します。

構文

FUNCTION InsertNewLine() RETURN BINARY_INTEGER;

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

FormatFontSize

このAPIは、現行のMicrosoft Wordドキュメントに対してフォント・サイズを設定します。

構文

FUNCTION FormatFontSize(fontsize BINARY_INTEGER) RETURN BINARY_INTEGER;

パラメータ

説明

fontsize

フォントのポイント・サイズ

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

Microsoft Excelデモ

次の各項では、Microsoft Excelデモのインストール方法と、このデモで提供されているAPIについて説明します。このデモは、OracleとMicrosoft Excelを使用して開発できるソリューションの例として提供されています。

Microsoft Excelデモは、次のものを提供します。

- ORDExcel(Microsoft Excelを操作するいくつかのAPIを公開するPL/SQLパッケージです)。このパッケージは、excelsol.sqlスクリプトによって作成されます。

- exceldem.sql(Oracle DatabaseのインスタンスとMicrosoft Excel間でのデータ交換機能を示すスクリプトです)。Oracle DatabaseのインスタンスのEMPLOYEES表およびJOBS表からMicrosoft Excelスプレッドシートにデータを交換し、そのデータをグラフに描画します。これらの表は、サンプル・スキーマ内の人事スキーマにあります。

Microsoft Excelデモのインストール

このデモをインストールする前に、ローカル・コンピュータ上にMicrosoft Excelがインストールされている必要があります。

Microsoft Excelデモをインストールするには、次のようにします。

1. SQL*Plusを起動します。

C:\> sqlplus /NOLOG

2. Microsoft Excelデモを使用するユーザーのアカウントで、Oracle Databaseのインスタンスに接続します。入力例は次のとおりです。

SQL> connect hr
Enter password: password

3. SQL*Plusプロンプトから、excelsol.sqlスクリプトを実行します。

SQL> @ORACLE_BASE\ORACLE_HOME\com\demos\excelsol.sql;

このスクリプトにより、現行のユーザーのスキーマ内にORDExcelパッケージが作成されます。このスクリプトを初めて実行するときに、次のエラーが数回発生します。

ORA-04043: object XXXX does not exist.

これらは正常なメッセージです。

Microsoft Excelデモの使用方法

Microsoft Excelデモを使用するには、次のようにします。

1. SQL*Plusプロンプトから、exceldem.sqlスクリプトを実行します。

SQL> @ORACLE_BASE\ORACLE_HOME\com\demos\exceldem.sql;

このスクリプトにより、C:\ディレクトリにMicrosoft Excelスプレッドシート(excelxxxxx.xls)が作成されます。このドキュメントには、EMPLOYEES表およびJOBS表から取得されたデータが含まれています。これらの表は、サンプル・スキーマ内の人事スキーマにあります。

2. excelxxxxx.xlsファイルを開いて、このファイルの内容を確認します。xxxxxはタイムスタンプです。

基本機能

次の各項では、Microsoft Excelデモで提供されるAPIについて説明します。これらのAPIは基本的な機能であり、Microsoft ExcelがCOM Automationを通じて提供するすべての機能を示すものではありません。

CreateExcelWorkSheet

このAPIは、Microsoft Excel COM Automationサーバーを起動し、ブックおよびワークシートに対応するオブジェクトをインスタンス化します。

構文

FUNCTION CreateExcelWorkSheet() RETURN BINARY_INTEGER;

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

InsertData

このAPIは、現行のExcelワークシートの特定のセルに、任意の種類のデータを挿入します。

構文

FUNCTION InsertData(range VARCHAR2, data any_PL/SQL_data type, data type VARCHAR2) RETURN BINARY_INTEGER;

パラメータ

説明

range

現行のExcelワークシート内の特定のセルを指定する文字列(たとえば「A1」、「B1」など)。

data

現行のExcelワークシートに挿入するデータ。

data type

Excelに挿入するデータのデータ型を表す文字列。使用可能なデータ型の一覧は、次のとおりです。

- I2: 2バイト整数

- I4: 4バイト整数

- R4: IEEE 4バイト実数

- R8: IEEE 8バイト実数

- SCODE: エラー・コード

- CY: 通貨

- DISPATCH: ディスパッチ・ポインタ

- BSTR: 文字列

- BOOL: ブール

- DATE: 日付

any_PL/SQL_data type

COM Automation機能でサポートされる任意のデータ型。

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

InsertChart

このAPIは、特定範囲のデータのグラフを作成し、現行のワークシートのXY位置にグラフを挿入します。グラフの高さと幅を任意に指定できます。

構文

FUNCTION InsertChart(xpos BINARY_INTEGER, ypos BINARY_INTEGER, width BINARY_INTEGER, height BINARY_INTEGER,
range VARCHAR2, type VARCHAR2) RETURN BINARY_INTEGER;

パラメータ

説明

xpos

グラフが挿入される現行のワークシート内のX位置

ypos

グラフが挿入される現行のワークシート内のY位置

width

グラフの幅

height

グラフの高さ

range

グラフ化されるセルの範囲

type

グラフ化されるデータのデータ型

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

SaveExcelFile

このAPIは、現行のMicrosoft Excelブックを特定のファイルに保存します。

構文

FUNCTION SaveExcelFile(filename VARCHAR2) RETURN BINARY_INTEGER;

パラメータ

説明

filename

Excelブックの完全修飾ファイル名

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

ExitExcel

クリーンアップを実行し、Excel COM Automationサーバーへの未解決の参照を破棄します。このAPIは、最後にコールすることをお薦めします。

構文

FUNCTION ExitExcel() RETURN BINARY_INTEGER;

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

Microsoft PowerPointデモ

次の各項では、Microsoft PowerPointデモのインストール方法と、このデモで提供されているAPIについて説明します。このデモは、Oracle DatabaseインスタンスとMicrosoft PowerPointを使用して開発できるソリューションの例として提供されています。

Microsoft PowerPointデモは、次のものを提供します。

- ORDPPT(Microsoft PowerPointを操作するいくつかのAPIを公開するPL/SQLパッケージです)。このパッケージは、pptsol.sqlスクリプトによって作成されます。

- pptdem.sql(Oracle DatabaseのインスタンスとMicrosoft PowerPoint間でのデータ交換機能を示すスクリプトです)。Oracle DatabaseインスタンスのEMPLOYEES表およびJOBS表からMicrosoft PowerPointドキュメントにデータを交換します。これらの表は、サンプル・スキーマ内の人事スキーマにあります。

Microsoft PowerPointデモのインストール

このデモをインストールする前に、ローカル・コンピュータ上にMicrosoft PowerPointがインストールされている必要があります。

Microsoft PowerPointデモをインストールするには、次のようにします。

1. SQL*Plusを起動します。

C:> sqlplus /NOLOG

2. Microsoft PowerPointデモを使用するユーザーのアカウントで、Oracle Databaseのインスタンスに接続します。入力例は次のとおりです。

SQL> connect hr
Enter password: password

3. SQL*Plusプロンプトから、pptsol.sqlスクリプトを実行します。

SQL> @ORACLE_BASE\ORACLE_HOME\com\demos\pptsol.sql;

このスクリプトにより、現行のユーザーのスキーマ内にORDPPTパッケージが作成されます。このスクリプトを初めて実行するときに、次のエラーが数回発生します。

ORA-04043: object XXXX does not exist.

これらは正常なメッセージです。

Microsoft PowerPointデモの使用方法

Microsoft PowerPointデモを実行するには、次のようにします。

1. SQL*Plusプロンプトから、pptdem.sqlスクリプトを実行します。

SQL> @ORACLE_BASE\ORACLE_HOME\com\demos\pptdem.sql;

このスクリプトにより、C:\ディレクトリにMicrosoft PowerPointプレゼンテーション(pptdemo.ppt)が作成されます。ドキュメントには従業員名のリストが含まれます。

2. pptdemo.pptを開いて、その内容を確認します。

基本機能

次の各項では、Microsoft PowerPointデモで提供されるAPIについて説明します。これらのAPIは基本的な機能であり、Microsoft PowerPointがCOM Automationを通じて提供するすべての機能を示すものではありません。

CreatePresentation

このAPIは、Microsoft PowerPoint COM Automationサーバーを起動し、プレゼンテーションに対応するオブジェクトをインスタンス化します。

構文

FUNCTION CreatePresentation (servername IN VARCHAR2) RETURN BINARY_INTEGER;

パラメータ

説明

servername

Microsoft PowerPoint COM Automationサーバー名

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

AddSlide

このAPIは、PowerPointプレゼンテーションに新しいスライドを挿入します。

構文

FUNCTION AddSlide (layout IN BINARY_INTEGER) RETURN BINARY_INTEGER;

パラメータ

説明

layout

新しいスライドのレイアウト

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

SetTitle

このAPIは、PowerPointスライドのタイトルを指定します。

構文

FUNCTION SetTitle (title IN VARCHAR2) RETURN BINARY_INTEGER;

パラメータ

説明

title

Powerpointスライドのタイトル

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

InsertText

このAPIは、スライド上の指定された位置にテキストを挿入します。

構文

FUNCTION InsertText (orientation IN BINARY_INTEGER, left IN BINARY_INTEGER, top IN BINARY_INTEGER,
width IN BINARY_INTEGER, height IN BINARY_INTEGER, text IN VARCHAR2) RETURN BINARY_INTEGER;

パラメータ

説明

orientation

テキスト・ボックスの方向

left

テキスト・ボックスの左端とスライドの左端の間の距離(ピクセル単位)

top

テキスト・ボックスの上端とスライドの上端の間の距離(ピクセル単位)

width

テキスト・ボックスの幅(ピクセル単位)

height

テキスト・ボックスの高さ(ピクセル単位)

text

テキスト・ボックスに入力されたテキスト

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

PresentationSave

このAPIは、現行のPowerPointプレゼンテーションを保存します。

構文

FUNCTION PresentationSave RETURN BINARY_INTEGER;

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

PresentationSaveAs

このAPIは、名前を指定して現行のプレゼンテーションを保存します。

構文

FUNCTION PresentationSaveAs (filename IN VARCHAR2) RETURN BINARY_INTEGER;

パラメータ

説明

filename

プレゼンテーションの完全修飾ファイル名

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

PresentationClose

このAPIは、現行のPowerPointプレゼンテーションを閉じます。

構文

FUNCTION PresentationClose RETURN BINARY_INTEGER;

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

Exit

このAPIは、PowerPointプログラムを終了します。

構文

FUNCTION Exit RETURN BINARY_INTEGER;

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

MAPIデモ

次の各項では、Messaging Application Programming Interface(MAPI)デモのインストール方法と、このデモで提供されているAPIについて説明します。このデモは、Oracle DatabaseインスタンスとMAPI準拠のアプリケーションを使用して開発できるソリューションの例として提供されています。

MAPIデモは、次のものを提供します。

- ORDMAPI。これは、Extended MAPIクライアントを操作するいくつかのAPIを公開するPL/SQLパッケージです。

- mapidem.sql。これは、Oracle DatabaseインスタンスとExtended MAPIクライアント間でのデータ交換機能を示すスクリプトです。

- mapi.reg。これは、レジストリ設定を更新する登録エントリ・ファイルです。

MAPIデモを使用する環境の設定

MAPIデモを使用するには、特定の関連アプリケーションを設定する必要があります。

注意:
次の設定には、Microsoft Outlook 2000以上が必要です。Outlook Expressは動作しません。

MAPIデモ用の環境を設定するには、次のようにします。

1. Exchange Serverをインストールして次のように新規アカウントを作成します。
「スタート」→「プログラム」→「Microsoft Exchange」→「Active Directoryユーザーとコンピュータ」を選択します。

ドメインを選択し、フォルダを開きます。ユーザーを選択して右クリックし、新規ユーザーを作成します。

2. 次のようにMicrosoft Outlookをインストールします。
「カスタム・インストール」を選択します。「Collaboration Data Objects」を選択します。

注意:
インストールの際、これらはデフォルトではインストールされません。

「企業/ワークグループ」オプションを選択します。

3. 次のようにMicrosoft Outlookを構成して接続情報を設定します。
Exchange Serverで作成したアカウントを追加します。

受信メール・サーバーおよび送信メール・サーバーを入力し、アカウント名およびパスワードを入力します。

接続タイプを選択します(たとえば「LAN」など)。

4. Microsoft Outlookを、電子メール、ニュースグループおよびカレンダ・ツールのデフォルト・プログラムとして次のように設定します。
Internet Explorerで「ツール」→「インターネット オプション」→「プログラム」を選択し、各フィールドに入力します。

5. MSDN Articleの268272に記載されているように、CDO.DLLにパッチを適用します。このパッチを適用したDLLはMicrosoft Exchange 5.5の一部です。パッチを適用したDLLを適切な場所に手動でコピーします。このDLLのデフォルトの場所は次のとおりです。

C:\Program Files\Common Files\System\Mapi\1033\NT

6. Windowsの「エクスプローラ」からMAPI.REGをダブルクリックしてレジストリ設定を更新します。MAPI.REGは次の場所にあります。

ORACLE_BASE\ORACLE_HOME\com\demos

MAPIデモのインストールの準備

MAPIソリューションは、Oracle DatabaseサーバーにかわってExtended MAPIクライアントをコールします。Windows 2000以上にあるOracle Databaseサービスは、デフォルトではシステム・ユーザーLocalSystemとして実行されます。ユーザーLocalSystemのMAPIプロファイルは簡単には構成できません。MAPIソリューションを使用する前に、ログオン・ユーザー・アカウントを使用して起動するようOracle DatabaseサービスとOracleHOME_NAMETNSListenerサービスの両方を変更します。

MAPIデモのインストールを準備するには、次のようにします。

1. DOMAIN-1\hrなど、ローカル・ユーザー・アカウントまたはドメイン・ユーザー・アカウントを使用してWindowsにログオンします。

2. MAPIサーバー(たとえば、Microsoft Outlook)を起動し、Windows 2000以上のユーザーDOMAIN-1\hr用のMAPIプロファイルを構成します。このプロファイルを使用して電子メールを送信できることを確認します。

3. Windowsの「コントロール パネル」の「サービス」に移動します。

4. OracleHOME_NAMETNSListenerサービスを停止します。

5. OracleHOME_NAMETNSListenerサービスを選択し、「スタートアップ」をクリックします。

6. 「ログオン」を「アカウント」に変更し、DOMAIN-1\hrと入力します。

7. DOMAIN-1\hrのパスワードを入力し、パスワードの確認入力をします。

8. OracleHOME_NAMETNSListenerサービスを再起動します。

9. Oracle Databaseサービスを停止します。

10. Oracle Databaseサービスを選択し、「スタートアップ」をクリックします。

11. 「ログオン」を「アカウント」に変更し、DOMAIN-1\hrと入力します。

12. DOMAIN-1\hrのパスワードを入力し、パスワードの確認入力をします。

13. Oracle Databaseサービスを再起動します。

MAPIデモのインストール

このデモをインストールする前に、ローカル・コンピュータ上にMAPIアプリケーション(Microsoft Outlook 2000以上など)がインストールされている必要があります。

MAPIデモをインストールするには、次のようにします。

1. SQL*Plusを起動します。

C:> sqlplus /NOLOG

2. MAPIデモを使用するユーザーのアカウントで、Oracle Databaseのインスタンスに接続します。入力例は次のとおりです。

SQL> connect hr
Enter password: password

3. SQL*Plusプロンプトから、mapisol.sqlスクリプトを実行します。

SQL> @ORACLE_BASE\ORACLE_HOME\com\demos\mapisol.sql;

このスクリプトにより、現行のユーザーのスキーマ内にORDMAPIパッケージが作成されます。このスクリプトを初めて実行するときに、次のエラーが数回発生します。

ORA-04043: object XXXX does not exist.

これらは正常なメッセージです。

MAPIデモの使用方法

MAPIデモを使用するには、次のようにします。

1. テキスト・エディタでmapidem.sqlを開き、ORDMapi.AddRecipientの電子メール・アドレスhr@us.oracle.comを自身の電子メール・アドレスに変更します。デフォルトのプロファイル名を使用しない場合は、「MS Exchange Settings」のORDMapi.CreateMAPISessionに示されているファイル名も変更します。変更を保存します。

2. SQL*Plusプロンプトから、mapidem.sqlスクリプトを実行します。

SQL> @ORACLE_BASE\ORACLE_HOME\com\demos\mapidem.sql;

このスクリプトはデータベース・サーバーに接続し、データを抽出し、指定された受信者に電子メールを送信します。

基本機能

次の各項では、MAPIデモで提供されるAPIについて説明します。これらのAPIは基本的な機能であり、MAPIがCOM Automationを通じて提供するすべての機能を示すものではありません。

CreateMAPISession

このAPIは、MAPI COM Automationサーバーを起動し、セッションのオブジェクトをインスタンス化します。

構文

FUNCTION CreateMAPISession (servername IN VARCHAR2 DEFAULT '', profilename IN VARCHAR2 DEFAULT NULL,
password IN VARCHAR2 DEFAULT NULL) RETURN BINARY_INTEGER;

パラメータ

説明

servername

MAPIサーバー名

profilename

MAPIサーバーに存在するプロファイルの名前

password

MAPIサーバーに接続するためのパスワード

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

NewMessage

このAPIは、新しいメッセージを作成します。

構文

FUNCTION NewMessage RETURN BINARY_INTEGER;

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

AddRecipient

このAPIは、受信者の電子メール・アドレスを追加します。このアドレスは、電子メール・メッセージの送信先のアドレスです。

構文

FUNCTION AddRecipient (emailaddress VARCHAR2) RETURN BINARY_INTEGER;

パラメータ

説明

emailaddress

受信者の電子メール・アドレス

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

SetSubject

このAPIは、電子メール・メッセージの件名を指定します。

構文

FUNCTION SetSubject (subject VARCHAR2) RETURN BINARY_INTEGER;

パラメータ

説明

subject

電子メール・メッセージの件名

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

SetBody

このAPIは、電子メール・メッセージの本文テキストを挿入します。

構文

FUNCTION SetBody (messagetext VARCHAR2) RETURN BINARY_INTEGER;

パラメータ

説明

messagetext

電子メール・メッセージの本文

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

SendMessage

このAPIは、指定された受信者に電子メール・メッセージを送信します。

構文

FUNCTION SendMessage RETURN BINARY_INTEGER;

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

EndMAPISession

このAPIは、MAPIセッションを終了します。

構文

FUNCTION EndMAPISession RETURN BINARY_INTEGER;

備考

このファンクションは、成功のときは0を返し、エラーが発生したときは0以外のHRESULTを返します。

5 Oracle COM Automation Javaデモ

この章では、Java用のOracle COM Automation機能用に設計されたデモ・プログラムの使用方法を説明します。

この章の項目は次のとおりです。

- Oracle COM Automation機能 Javaデモの概要

- Microsoft Word Javaデモ

Oracle COM Automation機能 Javaデモの概要

Java用のOracle COM Automation機能には、Oracle COM Automation機能を使用してソリューションを開発する方法を示す例が含まれています。このデモは基本機能を提供し、COM Automationを使用するカスタマイズされた複雑なアプリケーションを作成する基礎として機能します。このデモは、サンプル・スキーマで使用可能な人事スキーマに基づいています。

デモでは、Oracle COM Automation機能を使用して簡単な操作を行うための基本的なAPIのセットを提供しています。それぞれのCOM Automationサーバー(WordやExcelなど)は、デモAPIを通じて提供されるものよりもさらに高度な機能を提供します。これらの高度な機能を利用するためには、独自のJavaクラスを設計し、コーディングする必要があります。

このリリースでは、COM AutomationではMicrosoft Word Javaデモが提供されています。このデモでは、Oracle DatabaseインスタンスとMicrosoft Wordの間でデータ交換を行います。

Microsoft Word Javaデモ

次の各項では、Microsoft Word Javaデモのインストール方法と、このデモで提供されているAPIについて説明します。このデモは、Oracle DatabaseとMicrosoft Wordを使用して開発できるソリューションの例として提供されています。

デモでは、データベース内の従業員の名前を含むMicrosoft Wordドキュメントを作成します。

Microsoft Word Javaデモは、ORACLE_BASE\ORACLE_HOME\com\java\demosディレクトリにインストールされ、次のものを提供します。

- デモのJavaソースであるTestWORD.java。APIのセットに加え、これにはデモ・プログラムtestが含まれます。

- デモのJavaクラスであるTestWORD.class。

- デモのコール仕様を作成するスクリプトであるTestWORD.sql。

Microsoft Word Javaデモのインストール

このデモをインストールする前に、ローカル・コンピュータ上にMicrosoft Wordがインストールされている必要があります。

デモをインストールするには、次のようにします。

1. コマンドラインでloadjavaツールを実行します。

loadjava -force -resolve -user hr ORACLE_BASE\ORACLE_HOME\com\java\demos\TestWORD.class
Password: password

2. SQL*Plusを起動します。

C:\> sqlplus /NOLOG

3. Microsoft Wordデモを使用するユーザーのアカウントで、Oracle Databaseのインスタンスに接続します。入力例は次のとおりです。

SQL> connect hr
Enter password: password

4. TestWORD.sqlを実行し、コール仕様を作成します。

SQL> @ORACLE_BASE\ORACLE_HOME\com\java\demos\TestWORD.sql

関連項目:
loadjavaツールの詳細は、『Oracle Database Java開発者ガイド』を参照してください。

Microsoft Word Javaデモの使用方法

Wordデモを使用するには、次のようにします。

1. SQL*Plusプロンプトで、SERVEROUTPUTを設定します。

SQL> SET SERVEROUTPUT ON

2. SQL*Plusプロンプトで、TestWORD()をコールします。

SQL> CALL TestWORD();

このスクリプトにより、C:\ディレクトリにMicrosoft Wordドキュメント(worddemoj.doc)が作成されます。このドキュメントには、EMPLOYEES表およびJOBS表から取得されたデータが含まれています。これらの表は、サンプル・スキーマ内の人事スキーマにあります。

3. worddemoj.docを開いて、その内容を確認します。

カスタム・アプリケーションの作成

「基本機能」で説明するpublic class TestWORD APIは、Word.Basic COM Automationクラスのラッパーの他に、ラッパーの使用方法を示すサンプル・コードも提供します。このコードは、Oracle Databaseサーバーで実行するために作成されました。

このラッパーを使用するカスタム・アプリケーションを作成するには、次のようにします。

1. このクラスのオブジェクトをインスタンス化します。

2. CreateWordObjectメソッドをコールすることにより、Word.Basicオブジェクトを作成します。

3. FileNewメソッドで新規のMicrosoft Wordドキュメントを作成するか、FileLoadメソッドで既存のドキュメントを開きます。

4. FormatFontSizeメソッド、InsertTextメソッドおよびInsertNewLineメソッドを使用して、テキストと書式をドキュメントに追加します。

5. FileSaveAsまたはFileSaveメソッドでドキュメントを保存します。

6. ドキュメントの終了時に、FileCloseメソッドをコールします。

7. Word.Basicオブジェクトの終了時に、DestroyWordObjectメソッドをコールします。

基本機能

次の各項では、Microsoft Word Javaデモで提供されるAPIについて説明します。これらのAPIは基本的な機能であり、Microsoft WordがCOM Automationを通じて提供するすべての機能を示すものではありません。

TestWORD

このAPIは、コンストラクタです。これは何も行いません。

構文

public TestWORD()

CreateWordObject

Word.Basic COMオブジェクトを作成します。

構文

public void CreateWordObject(java.lang.String servername)

パラメータ

説明

servername

COMオブジェクトを作成するサーバー。ローカル・サーバーに対してはnullまたは空の文字列を指定します。

DestroyWordObject

このAPIは、Word.Basic COMオブジェクトを破棄します。

構文

public void DestroyWordObject()

FileNew

このAPIは、新規のMicrosoft Wordドキュメントを作成します。

構文

public void FileNew()

備考

このAPIは、Word.Basic COMオブジェクトのFileNewDefault COMメソッドのラッパーです。

FileLoad

このAPIは、既存のMicrosoft Wordドキュメントをロードします。

構文

public void FileLoad(java.lang.String filename)

パラメータ

説明

filename

ロードするファイルの名前

備考

このAPIは、Word.Basic COMオブジェクトのFileOpen COMメソッドのラッパーです。

FormatFontSize

このAPIは、フォント・サイズを設定します。

構文

public void FormatFontSize(long fontsize)

パラメータ

説明

fontsize

新しいフォント・サイズ

備考

このAPIは、Word.Basic COMオブジェクトのFormatFont COMメソッドのラッパーです。

InsertText

このAPIは、Microsoft Wordドキュメントにテキストを挿入します。

構文

public void InsertText(java.lang.String textstr)

パラメータ

説明

textstr

挿入するテキスト

備考

このAPIは、Word.Basic COMオブジェクトのInsert COMメソッドのラッパーです。

InsertNewLine

このAPIは、Microsoft Wordドキュメントに新しい行を挿入します。

構文

public void InsertNewLine()

備考

このAPIは、Word.Basic COMオブジェクトのInsertPara COMメソッドのラッパーです。

FileSaveAs

このAPIは、指定された名前を使用してMicrosoft Wordドキュメントを保存します。

構文

public void FileSaveAs(java.lang.String filename)

パラメータ

説明

filename

ファイルの名前

備考

このAPIは、Word.Basic COMオブジェクトのFileSaveAs COMメソッドのラッパーです。

FileSave

このAPIは、Microsoft Wordドキュメントを保存します。

構文

public void FileSave()

備考

このAPIは、Word.Basic COMオブジェクトのFileSave COMメソッドのラッパーです。

FileClose

このAPIは、Microsoft Wordドキュメントを閉じ、Microsoft Wordを終了します。

構文

public void FileClose()

備考

このAPIは、Word.Basic COMオブジェクトのFileCloseおよびFileExit COMメソッドのラッパーです。

A COM Automationエラー・メッセージ

この付録の項目は次のとおりです。

- Oracle COM Automation機能のPL/SQLエラー

- Microsoft COM Automationのエラー

Oracle COM Automation機能のPL/SQLエラー

次に示すのは、Oracle COM Automation機能のPL/SQLエラーの一覧と一般的な原因です。

COM-0001:BOOLEAN型ではありません

原因: プロパティの型または戻り値の型がブールではありませんが、ブール値が要求されました。

処置: 変数が適切なデータ型であることを確認します。

COM-0002:トークンが無効であるか、またはトークンのインタフェースがありません

原因: 指定されたトークンがCreateObjectを使用して作成されたCOMオブジェクト、またはDestroyObjectを使用して解放されたCOMオブジェクトを参照していません。

処置: インタフェースが存在することを確認します。

COM-0003:オブジェクトの数が最大数に達しています

原因: アクティブにできるCOMオブジェクトは常に1024個のみです。これにはCreateObjectを使用して作成されたCOMオブジェクトや、プロパティ値および戻り値として取得されたCOMオブジェクトが含まれます。

処置: 使用済のオブジェクトは、DestroyObjectをコールして破棄するようにします。

COM-0004:ProgIDに登録されたCLSIDは無効です。

原因: ProgIDはレジストリにありますが、ProgIDに関連付けられているCLSIDが正しくありません。

処置: 指定されたProgIDのCOMコンポーネントが登録されていることを確認します。

COM-0005:CLSIDをレジストリへ書込み中にエラーが発生しました。

原因: ProgIDがレジストリにありません。ProgIDを作成し、それに対しCLSIDを割り当てようとしましたが、レジストリを変更できませんでした。

処置: レジストリが書込み可能であることと、破損していないことを確認します。

COM-0006:指定されたクラスは登録データベースに登録されていません

原因: 指定されたクラスが登録データベースに登録されていません。

処置: クラスが登録されていることを確認します。

COM-0007:COM Automationオブジェクトを初期化できませんでした

原因: COMオブジェクトの作成中にエラーが発生しました。

処置: オブジェクトがCOM Automationオブジェクトとして登録されていることを確認します。

COM-0008:インタフェースがサポートされていません

原因: COMオブジェクトはIDispatchインタフェースをサポートしていないため、COM Automationをサポートできません。

処置: 指定されたインタフェースが有効であることを確認します。

COM-0014:起動できません

原因: メソッドまたはプロパティのコール中にエラーが発生しました。

処置: メソッド名がそのオブジェクトで有効であることを確認します。

COM-0015:パラメータ・カウントが正しくありません

原因: メソッドまたはプロパティに指定されたパラメータ数が予定されていたパラメータ数と異なります。

処置: メソッドのパラメータ数がカウントと等しいことを確認します。

COM-0017: アプリケーションで例外を呼ぶ必要があります。pexcepinfoに渡される構造体には値がすべて入っている必要があります

原因: COMオブジェクトが例外をスローしました。

処置: 例外には、エラー・ソース、エラーの説明、ヘルプ・ファイルおよびヘルプ・ファイルのコンテキストが含まれます。GetLastErrorをコールし、この追加情報を取得します。

COM-0018:リクエストされたメンバーが存在しないか、またはInvokeの呼出しで読取り専用プロパティの値を設定しようとしています。

原因: リクエストされたメンバーが存在しないか、またはInvokeのコールで読取り専用プロパティの値を設定しようとしています。

処置: プロパティ値が書き込めること、およびメンバーが存在することを確認します。

COM-0020:rgvargの引数の1つに、指定タイプへ強制変換できなかったものがあります。

原因: 引数の1つがメソッドまたはプロパティで予定していた型と異なります。引数はこの型に強制変換できません。

処置: 変換される引数のデータ型に互換性があることを確認します。

COM-0022:1つまたは複数の引数を強制変換できませんでした。

原因: 引数の1つがメソッドまたはプロパティで予定していた型と異なります。引数はこの型に強制変換できません。

処置: 引数に互換性があることを確認します。

COM-0025:オプション・パラメータではありません

原因: 要求された引数がありません。

処置: 引数カウントが、渡されるパラメータ数に対応していることを確認します。

COM-0026:最大許容文字数を超えた名前

原因: プロパティ名、メソッド名、サーバー名またはProgIDが長すぎます。

処置: 入力する名前の文字数は1024文字未満です。

Microsoft COM Automationのエラー

次に示すのは、Microsoft COM Automationエラーの一覧と一般的な原因です。エラー・コードは、16進および2進の両方でリストされています。

(0x800401f3) (-2147221005) クラス文字列が不正です

原因: 指定されたProgIDまたはCLSIDが、ローカル・コンピュータのレジストリにCOMオブジェクトとして登録されていません。

処置: COMコンポーネントを正しくインストールします。

(0x8007007e) (-2147024770) 指定されたモジュールが見つかりませんでした

原因: 指定されたCOMオブジェクトはインプロセスCOMサーバー(DLLファイル)として登録されていますが、DLLファイルが見つからないかロードされていません。

処置: COMコンポーネントを正しくインストールします。

(0x80020004) (-2147352572) パラメータが見つかりません

原因: 名前付きパラメータが位置パラメータの前に指定されました。

処置: すべての名前付きパラメータを、位置パラメータの後に指定します。

(0x80020005) (-2147352571) 型が一致しません

原因: プロパティ値またはメソッドの戻り値を格納するために使用するPL/SQLローカル変数のデータ型が、プロパティ値またはメソッドの戻り値のVisual Basicデータ型と一致しませんでした。または、メソッドの戻り値が要求されましたが値が返されませんでした。

処置: ローカル変数が適切なデータ型であることを確認し、メソッドについて、戻り値がvoid型でないことを確認します。

(0x80020006) (-2147352570) 名前が定義されていません

原因: 指定されたプロパティ名またはメソッド名が、指定されたオブジェクトに見つかりませんでした。

処置: メソッド名またはプロパティ名がそのオブジェクトで有効であることを確認します。

(0x80020008) (-2147352568) 変数型が不正です

原因: メソッド・パラメータとして渡されたPL/SQLまたはJava値のデータ型と、メソッド・パラメータのCOM Automationデータ型が一致しないか、またはメソッド・パラメータとしてNULL値が渡されました。

処置: メソッド・パラメータとして使用しているローカル変数を適切なデータ型にし、さらにNULL以外の値を設定するようにします。

(0x80080005) (-2146959355) サーバーの実行に失敗しました

原因: 指定されたCOMオブジェクトはローカルCOMサーバー(.EXEファイル)として登録されていますが、.EXEファイルが見つからないか、起動できません。

処置: COMコンポーネントを正しくインストールします。

用語集

Component Object Model(COM)

オブジェクト間通信を、個々のオブジェクトの記述に使用されるプログラム言語の種類に関係なく実現するためのバイナリ標準。

Distributed Component Object Model(DCOM)

オブジェクトがネットワークを介して他のオブジェクトと対話できるようにするためのCOM拡張。

ダイナミック・リンク・ライブラリ

必要に応じてWindowsアプリケーションがロードできる実行可能ファイル。

外部プロシージャ

Cなどの第3世代言語(3GL)で書かれた関数。PL/SQLファンクションまたはプロシージャと同様に、PL/SQLやSQL内でコールできます。

GUID

COMオブジェクトを一意に識別する識別子。GUIDはGlobally Unique Identifierの略称です。

IID

COMインタフェースを識別するGUID。

リスナー

クライアント・アプリケーションからの着信接続要求をリスニングして受け入れるサーバー・プロセス。Oracleリスナー・プロセスにより、クライアントとの後続の通信を処理するOracle Databaseプロセスが起動します。

listener.ora

サーバー上の1つまたは複数のTransparent Network Substrate(TNS)リスナーが記述されている構成ファイル。

Messaging Application Programming Interface

一連の共通Application Program Interfaceで構成されるメッセージ・アーキテクチャであり、様々なハードウェア・プラットフォーム間で、複数のアプリケーションが複数のメッセージ・システムを使用して対話することを可能にします。

Optimal Flexible Architecture

Oracleソフトウェアおよびデータベースのファイルのネーミングおよび配置に関する一連のガイドライン。

Oracle COM Automation機能

PL/SQL開発者が、COM Automationインタフェース(IDispatch)を通じてCOMオブジェクトをプログラム上で操作するためのOracleの機能の1つ。

Oracle Net

Oracleクライアント/サーバー通信ソフトウェア。任意のネットワーク・プロトコルおよびオペレーティング・システムを介して、Oracleツールまたはデータベースへの透過的操作を提供します。

PL/SQL

SQLを拡張した、オラクル社の手続き型言語。

progID

GUIDにマップされる記述文字列。

tnsnames.ora

ネット・サービス名にマップされる接続記述子を含むファイル。すべてのクライアントまたは各クライアントで使用するために、このファイルを集中してメンテナンスすることも、ローカルでメンテナンスすることもできます。

索引

A  B  C  D  E  G  H  I  J  L  M  O  P  R  S  T  U  W

A

API

Java, 3.7

PL/SQL, 3.6

Application Program Interface(API), 3.5

Java, 3.7

PL/SQL, 3.6

アーキテクチャ

Java, 1.3.2

PL/SQL, 1.3.1

アーキテクチャ

Oracle COM Automation, 1.3

Automation

Java API, 3.7.1

B

利点

Oracle COM Automation, 1.2

C

コール仕様, 5.2.1

COM Automation

コール, 1.3.1.1

PL/SQLエラー, A.1

COMオブジェクト

プログラムID, 3.4.1

プロパティとメソッド, 3.4.1

必要な情報, 3.4.1

表示, 3.4.2

comwrap.sql, 2.1.1, 2.4.1 構成

Java, , 2.4.2

PL/SQL, 2.4.1

構成

PL/SQL用のOracle COM Automationのリスナー, 2.5

Oracle COM Automation, 2.4

コンストラクタ, 3.7.1 基本機能

Oracle COM Automation, 1.1.1

作成

Java API, 3.7.2

CreateObject

PL/SQL API, 3.6.1

Currency

Java API, 3.7.9

D

データ型

変換, 3.1.1, 3.1.2

Javaデータ型からCOM Automationデータ型への変換, 3.1.2

PL/SQLデータ型からCOM Automationデータ型への変換, 3.1.1

dcomcnfg.exeツール, 2.7.2 デモ

MAPIデモのインストール, 4.5.3

Microsoft Excelデモのインストール, 4.3.1

Microsoft PowerPointデモのインストール, 4.4.1

Microsoft Wordデモのインストール, 4.2.1

MAPI, 4.5

Microsoft Excel, 4.3

Microsoft PowerPoint, 4.4

Microsoft Word, 4.2

Oracle COM Automation, 4.1

Java用のOracle COM Automation, 5.1

PL/SQL, 4.1

Destroy

Java API, 3.7.3

DestroyObject

PL/SQL API, 3.6.2

Distributed Component Object Model(DCOM)

構成, 2.7

定義, 2.6

E

エラー

コード, 3.2

HRESULT, 3.2

メッセージ, A.2

Microsoft COM Automation, A.2

Oracle COM Automation, A.1

例

MAPI, 4.5

Microsoft Excel, 4.3

Microsoft PowerPoint, 4.4

Microsoft Word, 4.2

Microsoft Word Java, 5.2

Exchange Server, 4.5.1 EXTPROC

extproc.exe, 1.3.1.1

G

GetArg

PL/SQL API, 3.6.8

GetLastError

PL/SQL API, 3.6.3

GetProperty

Java API, 3.7.4

PL/SQL API, 3.6.4

Globally Unique Identifier(GUID), 3.4.1 grant.sql, 2.1.2, 2.4.2

H

HRESULT

リターン・コード, 3.2

I

IDispatchインタフェース, 3.6.1, 3.7, 3.7.1

IDL, 3.4.1

InitArg

Java API, 3.7.6

PL/SQL API, 3.6.6

InitOutArg,

PL/SQL API, 3.6.7

インストール

Oracle COM Automation, 2.1

PL/SQL MAPIデモのインストール

準備, 4.5.2

Microsoft Word Javaデモのインストール, 5.2.1 インタフェース定義言語, 3.4.1 Internet Explorer, 4.5.1 Invoke

Java API, 3.7.8

PL/SQL API, 3.6.10

J

Java

構成, 2.4.2

Java API

Automation, 3.7.1

Create, 3.7.2

Currency, 3.7.9

Destroy, 3.7.3

GetProperty, 3.7.4

InitArg, 3.7.6

Invoke, 3.7.8

SetArg, 3.7.7

SetProperty, 3.7.5

Java API, 3.7

CreateWordObject, 5.2.4

DestroyWordObject, 5.2.4

FileClose, 5.2.4

FileLoad, 5.2.4

FileNew, 5.2.4

FileSave, 5.2.4

FileSaveAs, 5.2.4

FormatFontSize, 5.2.4

InsertNewLine, 5.2.4

InsertText, 5.2.4

TestWORD, 5.2.4

Java Automationコンストラクタ, 3.7.1 Javaコンポーネント, 2.1.2 Java Currencyコンストラクタ, 3.7.9

L

リスナー

Oracle COM Automationの構成, 2.5

loadjava, 5.2.1

M

MAPI

デモ・スクリプトmapidem.sql, 4.5

PL/SQLの例, 4.5

MAPIデモ, 4.5.2 Application Program Interfaceの管理。「MAPI」を参照。 Microsoft Excel

デモ・スクリプトexceldem.sql, 4.3, 4.3, 4.3

PL/SQLの例, 4.3

Microsoft Outlook, 4.5.1 Microsoft PowerPoint

デモ・スクリプトpptdem.sql, 4.4

デモ・スクリプトpptsol.sql, 4.4

PL/SQLの例, 4.4

Microsoft Word

デモ・スクリプトworddem.sql, 4.2

例, 4.2

Microsoft Word Javaデモ, 5.2

O

OLE-COMオブジェクト ビューア, 3.4.2

ORA-04043エラー・メッセージ, 2.4.1

ORA-28575エラー・メッセージ, 2.5.1

Oracle COM Automation

アーキテクチャ, 1.3

利点, 1.2

コンポーネント, 2.1

構成, 2.4

基本機能, 1.1.1

デモ, 4.1

インストール, 2.1

概要, 1.1

Javaデモ, 5.1

Oracle COM Automation機能開発者ガイド, はじめに orawcom.dll, 2.3 orawcom.dll, , 1.3.2, 1.3.2, 2.1.2 orawpcomVER.dll, 1.3.1.1, 1.3.1.1, 2.1.1 ORDExcel

PL/SQLパッケージ, 4.3

ORDMAPI

PL/SQLパッケージ, 4.5

ORDPPT

PL/SQLパッケージ, 4.4

ORDWord

PL/SQLパッケージ, 4.2

Outlookクライアント, 4.5.1

P

PL/SQL

構成, 2.4.1

ORDExcelパッケージ, 4.3

ORDMAPIパッケージ, 4.5

ORDPPTパッケージ, 4.4

ORDWordパッケージ, 4.2

PL/SQL API

CreateObject, 3.6.1

DestroyObject, 3.6.2

GetArg, 3.6.8

GetLastError, 3.6.3

GetProperty, 3.6.4

InitArg, 3.6.6

InitOutArg, 3.6.7

Invoke, 3.6.10

SetArg, 3.6.9

SetProperty, 3.6.5

PL/SQL API

AddRecipient, 4.5.5

AddSlide, 4.4.3

CreateExcelWorkSheet, 4.3.3

CreateMAPISession, 4.5.5

CreatePresentation, 4.4.3

CreateWordObject, 4.2.3

EndMAPISession, 4.5.5

Exit, 4.4.3

ExitExcel, 4.3.3

FileClose, 4.2.3

FileLoad, 4.2.3

FileNew, 4.2.3

FileSave, 4.2.3

FileSaveAs, 4.2.3

FormatFontSize, 4.2.3

InsertChart, 4.3.3

InsertData, 4.3.3

InsertNewLine, 4.2.3

InsertText, 4.2.3, 4.4.3

NewMessage, 4.5.5

PresentationClose, 4.4.3

PresentationSave, 4.4.3

PresentationSaveAs, 4.4.3

SaveExcelFile, 4.3.3

SendMessage, 4.5.5

SetBody, 4.5.5

SetSubject, 4.5.5

SetTitle, 4.4.3

PL/SQLのアーキテクチャ, 1.3.1 PL/SQLコンポーネント, 2.1.1 インストールの準備, 4.5.2 権限の付与, 2.4.1 progID

COMオブジェクト, 3.4.1

プログラムID

COMオブジェクト, 3.4.1

R

リターン・コード

HRESULT, 3.2

S

サンプル・スキーマ, 4.1, 5.1

SERVEROUTPUT, 5.2.2

SetArg

Java API, 3.7.7

PL/SQL API, 3.6.9

SetProperty

Java API, 3.7.5

PL/SQL API, 3.6.5

システム要件

Oracle COM Automation, 2.2

T

TestWORD, 5.2.3

TestWORD.class, 5.2

TestWORD.java, 5.2

TestWORD.sql, 5.2, 5.2.1

トラブルシューティング

Oracle COM Automation PL/SQLエラー, A.1

U

Microsoft Wordデモの使用方法, 5.2.2

W

worddemoj.doc, 5.2.2

Copyright © 1999, 2011, Oracle and/or its affiliates. All rights reserved.