Pro*C/C++をインストールするときに、Oracle Universal Installerによって、Pro*C/C++の一連のサンプル・プログラムがORACLE_BASE\ORACLE_HOME
\precomp\demo\proc
ディレクトリにコピーされます。表F-1に、これらのサンプル・プログラムの一覧を示し、後に続く項で説明します。
Oracleが提供するサンプル・プログラムでは、ビルド時に.exe
実行可能ファイルが生成されます。
表の「注意」列に示しているように、一部のサンプル・プログラムについては、プリコンパイルして実行する前に、サンプル・ディレクトリにあるSQLスクリプトを実行する必要があります。SQLスクリプトは、サンプル・プログラムが正常に実行されるよう、適切な表およびデータを設定します。これらのSQLスクリプトは、ORACLE_BASE
\
ORACLE_HOME
\precomp\demo\sql
ディレクトリにあります。
Pro*C/C++が正常にインストールされ、正しく動作することを検証するために、これらのサンプル・プログラムをビルドし、実行することをお薦めします。プログラムは、使用後に削除できます。
サンプル・プログラムは、pcmake.bat
というバッチ・ファイルか、Microsoft Visual Studioを使用してビルドできます。
関連項目:
表F-1 サンプル・プログラム
サンプル・プログラム | ソース・ファイル | Pro*C/C++ GUIプロジェクト・ファイル | MSVCコンパイラ・プロジェクト・ファイル | 注意 |
---|---|---|---|---|
|
|
|
|
- |
|
|
|
|
- |
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
- |
|
|
|
|
- |
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
- |
|
|
|
|
- |
|
|
|
|
- |
|
|
|
|
- |
|
|
|
|
- |
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
- |
|
|
|
|
- |
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
- |
|
|
|
|
- |
|
|
|
|
- |
|
|
|
|
- |
次の各項では、サンプル・プログラムの機能について説明します。
実行時まで認識されないSQL文を、ANSI動的SQLを使用して処理する方法を示します。このプログラムは、ANSI動的SQLを使用するための最も簡単な(ただし、最も効率的というわけではない)方法を紹介することを目的としています。
実行時まで認識されないSQL文を、ANSI動的SQLを使用して処理する方法を示します。このプログラムでは、バッチ処理および参照セマンティクスでOracle拡張機能が使用されます。
カリフォルニア州の複数の郡についての人口調査情報をフェッチします。このプログラムでは、コレクション型データベース列によりナビゲートする様々な方法を示します。
接続プール機能の使用方法を示します。各種接続プール・オプションを使用して、パフォーマンスを最適化する方法も示します。
比較的複雑なSQL文のセットでの接続プーリング機能について示し、パフォーマンスの向上がプログラムで使用されるSQL文の種類によってどのように決まるかを示します。
ユーザーに従業員番号の入力を求め、その従業員の名前、給与および歩合をemp
表に問い合せます。このプログラムでは、インジケータ構造体内の標識変数を使用して、歩合がNULL
でないかどうかを判別します。
すべての営業担当者を検索し、その名前と総収入(歩合を含む)を出力します。このプログラムは、C++の継承の例です。
参照カーソルを宣言し、オープンします。
EMPCLASS
およびCPPDEMO2
ファイルは、C++フレームワーク内でのPro*C/C++プログラムを記述方法の例を示すためのものです。EMPCLASS
は、emp
表に対する特定の問合せをカプセル化したもので、カーソル変数を使用して実装されます。EMPCLASS
は、その問合せのインスタンスをインスタンス化し、emp
クラスに属するC++メンバー関数により、カーソル変数の機能(open
、fetch
、close
)を提供します。empclass.pc
ファイルは、スタンドアロンのデモ・プログラムではありません。これはcppdemo2
デモ・プログラムで使用するために作成されたものです。emp
クラスを使用するには、emp
クラスのインスタンスを宣言し、そのクラスのメンバー関数をコールするドライバ(cppdemo2.pc
)を作成する必要があります。
個人の社会保障番号に基づいて、データベースに対して犯罪記録のフェッチおよび追加を行います。このプログラムは、ラージ・オブジェクト(LOB)にアクセスして表に格納するメカニズム、およびDBMS_LOB
パッケージにより使用可能になるストアド・プロシージャでLOBを操作するメカニズムを示します。
スレッドをプリコンパイラとともに使用する方法を示します。このプログラムでは、スレッドと同じ数のセッションが作成されます。
関連項目:
オブジェクト・キャッシュ内のオブジェクトへのナビゲーショナル・アクセスを示します。
実行時に様々なパフォーマンス・パラメータを判断するためにORACAを使用する方法を示します。
埋込みPL/SQLブロックの使用方法を示します。このプログラムでは、データベースに登録されている従業員名の入力が要求されます。次に、PL/SQLブロックが実行され、4つのSELECT
文の結果が戻されます。
人事データベースに新しい従業員レコードを追加し、データベースの整合性をチェックします。データベース内の従業員番号には、現在の最大従業員番号+10の値が自動的に選択されます。
Oracleデータベースにログインし、ユーザーに従業員番号の入力を要求し、データベースにその従業員の名前、給与および歩合を問い合せて結果を表示します。ユーザーが従業員番号として0を入力するまでこの処理を続けます。
Oracleデータベースにログインし、カーソルを宣言してオープンし、すべての営業担当者の名前、給与および歩合をフェッチして結果を表示し、カーソルをクローズします。
Oracleデータベースにログインし、カーソルを宣言してオープンし、配列を使用して一括でフェッチし、print_rows()
関数を使用して結果を出力します。
LONG VARRAW
外部データ型を使用して、型同値化の使用方法を示します。
ユーザーに口座番号および引落し金額の入力を要求します。プログラムは、口座から金額を引き落す前に、口座番号が正しいことと、その金額を引き落せるだけの預金があることを確認します。このプログラムは、埋込みSQLの使用方法を示します。
scott/tiger
アカウントを使用して、Oracleデータベースに接続します。このプログラムでは、複数のホスト配列を宣言し、PL/SQLストアド・プロシージャ(CALLDEMO
パッケージのGET_EMPLOYEES
)をコールします。PL/SQLプロシージャは、ASIZE
値まで戻します。プログラムは、すべての行を取得するまでGET_EMPLOYEES
をコールし、毎回ASIZE
配列を取得して、値を出力し続けます。
ユーザー名とパスワードを使用してOracleデータベースに接続し、SQL文の入力を要求します。任意の有効なSQL文を入力できますが、埋込みSQLではなく、通常のSQL構文を使用する必要があります。入力した文は処理されます。文が問合せの場合、フェッチされた行が表示されます(動的SQL方法4)。
カーソル変数を使用して、emp
表からフェッチします。カーソルは、EMP_DEMO_PKG
パッケージ内のPL/SQLストアド・プロシージャopen_cur
でオープンされます。
動的SQL方法4を使用して配列フェッチを実行する方法を示します。
Oracle動的SQL方法4でスクロール可能カーソルを使用する方法を示します。スクロール可能カーソルは、ANSIの動的SQL方法4でも使用できます。
ホスト配列でスクロール可能カーソルを使用する方法を示します。
sqlvcp()
関数を使用してVARCHAR
構造体の実際のサイズを確認する方法を示します。サイズは、VARCHAR
の配列を移動するポインタを増やすためのオフセットとして使用されます。
このプログラムは、SQLStmtGetText()
関数を使用して、最後に実行されたSQL文のテキストを取得する方法も示します。
人事データベースに新しい従業員レコードを追加し、データベースの整合性をチェックします。人事データベースに新しい従業員レコードを追加し、データベースの整合性をチェックします。必要な数の従業員名を入力でき、「Employee Record」ダイアログ・ボックスで適切なボタンを選択してSQLコマンドを実行できます。これは、サンプル・プログラムのGUIバージョンです。