Pro*Cサンプル・プログラムのコンパイルおよび実行


重要な前提条件

1. サンプル・データベースとユーザー・アカウントを設定する

次のbuild_sampledbスクリプトを1回実行して、サンプル・データベースおよびユーザー・アカウントを設定する必要があります。

Windows:   > cd quickstart/sample_scripts/createdb
> build_sampledb.bat
UNIX/Linux:   $ cd quickstart/sample_scripts/createdb
$ ./build_sampledb.sh

2. サンプル・プログラムをコンパイルおよび実行するための環境を設定する

各端末セッションに対して、次のスクリプトを実行する必要があります。

Windows:   > quickstart/ttquickstartenv.bat
UNIX/Linux:   $ . quickstart/ttquickstartenv.sh または
$ source quickstart/ttquickstartenv.csh

Pro*Cサンプル・プログラムをコンパイルする方法

sample_code/procディレクトリのサンプル・プログラムをコンパイルするには、同じディレクトリにあるmakefileを実行します。TimesTenがインストールされているプラットフォームに基づいて、適切なmakefileが使用可能であることを確認してください。

sample_code/procディレクトリのサンプル・プログラムをビルドするには、次のコマンドを使用します。

[Windows] > nmake <program-name>.exe
[Linux/UNIX] $ make <program-name>
ここで、<program-name>はコンパイル対象のプログラムです。

たとえば、ansidyn1プログラムをコンパイルする場合は、次のコマンドを実行します。

[Windows] > nmake ansidyn1.exe
[Linux/UNIX] $ make ansidyn1

すべてのPro*Cサンプル・プログラム実行可能ファイルをビルドするには、Windowsではnmakeを、Linux/UNIXではmakeを入力する必要があるだけです。

WindowsでPro*Cサンプル・プログラムをビルドするには、次の手順を実行します。


Pro*Cサンプル・プログラムを実行する方法

  addempPROC このPro*Cサンプル・プログラムは、ユーザーに情報の入力を求め、新しい従業員として対応するデータをEMP表に挿入します。

このプログラムは、Oracle Pro*C sample.pcプログラムに基づいており、挿入されるデータに対して最小のエラー・チェックが実行されます。

このプログラムが動作するには、EMP表が存在している必要があります。

 例:

  (デフォルトのユーザーappuserとデフォルトのTNSサービス名sampledb_1121を使用してプログラムを実行し、パスワードの入力を求める場合)

   addempPROC

  (ユーザー名、パスワードおよびサービス名を指定してプログラムを実行する場合)

   addempPROC -user myuser -password mypassword -service myservice

プログラムの完全な構文を参照するには、"addempPROC -help"を実行してください。

  ansidyn1 ansidyn1.pcは、動的なSQLインタプリタを実装するOracle Pro*Cプログラムです。ansidyn1.pcは、ANSI埋込みSQLの構文を使用して、入力コマンド・プロンプト(SQL>)で、動的SQLを受け入れます。

実行時に、ユーザー名およびパスワードの入力が求められます。サービス名は、TNSnames.oraファイルのエントリまたは単純な接続文字列にすることができます。

このプログラムは、既存の表がなくても動作します。

 例:

  (TNSサービス名または単純な接続文字列を使用してプログラムを実行する場合。TNSサービス名には、sampledb_1121を入力します。単純な接続文字列には、localhost/sampledb_1121:timesten_directを入力します。)

   ansidyn1

  batchfetchPROC このPro*Cサンプル・プログラムは、データベースに接続してから、カーソルを宣言して開き、配列を使用してバッチにフェッチし、ファンクションprint_rows()を使用して結果を出力します。

このプログラムが動作するには、EMP表が存在している必要があります。

 例:

  (デフォルトのユーザーappuserとデフォルトのTNSサービス名sampledb_1121を使用してプログラムを実行し、パスワードの入力を求める場合)

   batchfetchPROC

  (ユーザー名、パスワードおよびサービス名を指定してプログラムを実行する場合)

   batchfetchPROC -user myuser -password mypassword -service myservice


プログラムの完全な構文を参照するには、"batchfetchPROC -help"を実行してください。

 

  cursorPROC このPro*Cサンプル・プログラムは、データベースに接続してから、カーソルを宣言して開きます。カーソルは、すべての販売員の名前、給料およびコミッションをフェッチし、結果を表示してからカーソルを閉じます。

このプログラムが動作するには、EMP表が存在している必要があります。

 例:

  (デフォルトのユーザーappuserとデフォルトのTNSサービス名sampledb_1121を使用してプログラムを実行し、パスワードの入力を求める場合)

   cursorPROC

  (ユーザー名、パスワードおよびサービス名を指定してプログラムを実行する場合)

   cursorPROC -user myuser -password mypassword -service myservice


プログラムの完全な構文を参照するには、"cursorPROC -help"を実行してください。

 

  getempPROC このPro*Cサンプル・プログラムは、ユーザーに従業員番号の入力を求めてから次のように動作します。

- emp表に対して従業員の名前、給料およびコミッションを問い合せます。
- (インジケータ構造体内の)標識変数を使用して、コミッションがNULLであるかどうかを判別します。

従業員番号は、Pro*C batchfetchPROCサンプル・プログラムを実行するか、またはEMP表を介して検索できます。

このプログラムが動作するには、EMP表が存在している必要があります。

 例:

  (デフォルトのユーザーappuserとデフォルトのTNSサービス名sampledb_1121を使用してプログラムを実行し、パスワードの入力を求める場合)

   getempPROC

  (ユーザー名、パスワードおよびサービス名を指定してプログラムを実行する場合)

   getempPROC -user myuser -password mypassword -service myservice

プログラムの完全な構文を参照するには、"getempPROC -help"を実行してください。

 

  plsqlPROC このサンプル・プログラムは、Pro*Cを使用し、4つの異なる方法で共通のPL/SQLパッケージ(emp_pkgおよびsample_pkg)にアクセスします。

- INおよびOUTパラメータを使用してストアド・プロシージャをコールする
- INおよびOUTパラメータを使用してストアド・ファンクションをコールする
- 無名ブロックをコールし、ブロックとのホスト変数のやりとりを行う
- ストアド・プロシージャをコールして参照カーソルを開き、Pro*Cを使用して参照カーソルの結果セットを処理する

このプログラムが動作するには、EMP表と、emp_pkgおよびsample_pkg PL/SQLパッケージが存在している必要があります。

ビルド:

plsqlPROCがmake(Windowsの場合はnmake)でビルドされるとき、Oracle Pro*Cプリコンパイラはユーザーappuserのパスワードの入力を求めます。
ビルド時にパスワードの入力を求められないようにするために、Makeファイルでパスワードをハードコードできますが、セキュリティ上のリスクを伴います。

たとえば、USERID=appuser/your_password_for_appuser

 
例:

  (デフォルトのユーザーappuserとデフォルトのTNSサービス名sampledb_1121を使用してプログラムを実行し、パスワードの入力を求める場合)

   plsqlPROC

  (ユーザー名、パスワードおよびサービス名を指定してプログラムを実行する場合)

   plsqlPROC -user myuser -password mypassword -service myservice


プログラムの完全な構文を参照するには、"plsqlPROC -help"を実行してください。


 

TimesTenのPro*C/C++サポートの詳細は、『Oracle TimesTen In-Memory Database C開発者ガイド』の「Pro*C/C++」を参照してください。