この節では、以下に示す DB2 インターフェースで MIPSpro C を使用する方法について説明します。
sqllib/samples/cli のスクリプト・ファイル bldcli には、 DB2 CLI プログラムを作成するためのコマンドが入っています。 パラメーター $1 には、ソース・ファイルの名前を指定します。
これは、唯一の必須パラメーターであり、 組み込み SQL を含まない CLI プログラムに必要なパラメーターはこのパラメーターだけです。 組み込み SQL プログラムを作成するためにはデータベースへの接続が必要なため、 オプションとして 3 つのパラメーターが用意されています。 2 番目のパラメーターは $2 で、 接続するデータベースの名前を指定します。 3 番目のパラメーターは $3 で、 データベースのユーザー ID を指定します。 そしてもう 1 つが $4 で、 データベースのパスワードを指定します。
プログラムに組み込み SQL が含まれている場合 (拡張子が .sqc の場合) は、 embprep スクリプトが呼び出されてそのプログラムをプリコンパイルし、 .c という拡張子のプログラム・ファイルを生成します。
#! /bin/ksh # bldcli script file -- Silicon Graphics IRIX # Builds a CLI program with MIPSpro C. # Usage: bldcli <prog_name> [ <db_name> [ <userid> <password> ]] # Set DB2PATH to where DB2 will be accessed. # The default is the instance path. DB2PATH=$HOME/sqllib # If an embedded SQL program, precompile and bind it. if [[ -f $1".sqc" ]] then embprep $1 $2 $3 $4 fi # To compile with n32 object support, uncomment the following line. # IRIX_OBJECT_MODE=-n32 if [ "$IRIX_OBJECT_MODE" = "-n32" ] ; then # Link with db2 n32 object type libraries. DB2_LIBPATH=$DB2PATH/lib32 else # Link with db2 o32 object type libraries. DB2_LIBPATH=$DB2PATH/lib fi # Compile the error-checking utility. cc $IRIX_OBJECT_MODE -I$DB2PATH/include -c utilcli.c # Compile the program. cc $IRIX_OBJECT_MODE -I$DB2PATH/include -c $1.c # Link the program. cc $IRIX_OBJECT_MODE -o $1 $1.o utilcli.o -L$DB2_LIBPATH -rpath $DB2_LIBPATH -lm -ldb2
bldcli のコンパイルおよびリンク・オプション |
---|
コンパイル・オプション
|
リンク・オプション
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
|
ソース・ファイル tbinfo.c からサンプル・プログラム tbinfo を構築するには、 次のようにします。
bldcli tbinfo
結果として、実行可能ファイル tbinfo が生成されます。 この実行可能ファイルを実行するには、実行可能ファイル名、データベース名、 およびデータベースが置かれているインスタンスのユーザー ID とパスワードを入力します。
tbinfo database userid password
ソース・ファイル dbusemx.sqc から dbusemx を構築するには、 データベースのパラメーターと、 データベースが置かれているインスタンスのユーザー ID とパスワードを指定するパラメーターを組み込みます。
bldcli dbusemx database userid password
結果として、実行可能ファイル dbusemx が作成されます。
この組み込み SQL アプリケーションを実行するには、実行可能ファイル名、データベース名、 およびデータベースが置かれているインスタンスのユーザー ID とパスワードを入力します。
dbusemx database userid password
DB2 には、CLI サンプル・プログラムが含まれています。 このサンプル・プログラムは、DB2 API を使用してデータベースを作成およびドロップし、 CLI 機能を複数のデータベースで使用する方法を示します。 DB2 API を使用するサンプルは、 表 7 にある CLI サンプル・プログラムの説明の中に示されています。
sqllib/samples/cli のスクリプト・ファイル bldapi には、 DB2 API を使用して DB2 CLI プログラムを作成するためのコマンドが入っています。 このファイルは、 データベースを作成およびドロップするための DB2 API が入った utilapi ユーティリティー・ファイルでコンパイルおよびリンクします。 この点が、 このスクリプト・ファイルと bldcli スクリプトの唯一の違いです。 bldapi と bldcli の両方に共通するコンパイルとリンクのオプションについては、 "DB2 CLI アプリケーション" を参照してください。
ソース・ファイル dbmconn.c からサンプル・プログラム dbmconn を作成するには、 次のようにします。
bldapi dbmconn
結果として、実行可能ファイル dbmconn が作成されます。 この実行可能ファイルを実行するには、実行可能ファイル名、データベース名、 およびデータベースが置かれているインスタンスのユーザー ID とパスワードを入力します。
dbmconn database userid password
ストアード・プロシージャーは、 データベースにアクセスしてクライアント・アプリケーションに情報を戻すプログラムです。 ストアード・プロシージャーのコンパイルと保管は、サーバー上で行います。 なお、サーバーは、別のプラットフォームで実行します。
DB2 がサポートするプラットフォームのサーバー上で DB2 CLI ストアード・プロシージャー spserver を作成する場合は、 本書のそのプラットフォーム用の『アプリケーションの構築』という章を参照してください。 DB2 クライアントからアクセスできる他のサーバーについては、 "サポートされるサーバー"を参照してください。
ストアード・プロシージャー spserver を構築すると、 スクリプト・ファイル bldcli を使用して、 ストアード・プロシージャー spclient を呼び出すクライアント・アプリケーションをソース・ファイル spclient.c から構築することができます。 詳細については、"DB2 CLI アプリケーション"を参照してください。
ストアード・プロシージャーを呼び出すには、実行可能ファイル名、データベース名、 およびデータベースが置かれているインスタンスのユーザー ID とパスワードを入力します。
spclient database userid password
クライアント・アプリケーションは共用ライブラリー spserver にアクセスし、 様々なストアード・プロシージャー関数をサーバー・データベース上で実行します。 出力は、クライアント・アプリケーションに戻されます。
ユーザー定義関数 (UDF) とは、ユーザー独自のスカラー関数や表関数のことであり、 これらの関数はサーバー上でコンパイルされ、サーバー上に保管されます。 なお、サーバーは別のプラットフォームで実行します。 DB2 がサポートする各プラットフォームのサーバー上でユーザー定義関数 udfsrv を作成する場合は、 本書のそのプラットフォーム用の『アプリケーションの構築』という章を参照してください。 DB2 クライアントからアクセスできる他のサーバーについては、 "サポートされるサーバー"を参照してください。
udfsrv を構築したなら、DB2 CLI スクリプト・ファイル bldcli を使用して、 それを呼び出すための DB2 CLI クライアント・アプリケーション udfcli を sqllib/samples/cli のソース・ファイル udfcli.c から構築することができます。 詳細については、"DB2 CLI アプリケーション"を参照してください。
UDF プログラムを呼び出すには、実行可能ファイル名、データベース名、 およびデータベースが置かれているインスタンスのユーザー ID とパスワードを入力して、 呼び出しアプリケーションを実行します。
udfcli database userid password
この呼び出しアプリケーションは、 udfsrv ライブラリーから ScalarUDF 関数を呼び出します。
sqllib/samples/c にあるスクリプト・ファイル bldapp には、 DB2 アプリケーション・プログラムを構築するコマンドが含まれています。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 このパラメーターは、唯一の必須パラメーターであり、 組み込み SQL を含まない DB2 API プログラムに必要なパラメーターはこのパラメーターだけです。 組み込み SQL プログラムを作成するためにはデータベースへの接続が必要なため、 オプションとして 3 つのパラメーターが用意されています。 2 番目のパラメーターは $2 で、 接続するデータベースの名前を指定します。 3 番目のパラメーターは $3 で、 データベースのユーザー ID を指定します。 そしてもう 1 つが $4 で、 データベースのパスワードを指定します。
組み込み SQL プログラムの場合、bldapp は、 プリコンパイルおよびバインドのファイル embprep にパラメーターを渡します。 データベース名が指定されない場合は、 デフォルトの sample データベースが使用されます。 なお、ユーザー ID とパスワードのパラメーターは、 プログラムを構築するインスタンスとデータベースのあるインスタンスが異なる場合にのみ必要になります。
#! /bin/ksh # bldapp script file -- Silicon Graphics IRIX # Builds a C application program. # Usage: bldapp <prog_name> [ <db_name> [ <userid> <password> ]] # Set DB2PATH to where DB2 will be accessed. # The default is the standard instance path. DB2PATH=$HOME/sqllib # To compile with n32 object support, uncomment the following line. # IRIX_OBJECT_MODE=-n32 if [ "$IRIX_OBJECT_MODE" = "-n32" ] ; then # Link with db2 n32 object type libraries. DB2_LIBPATH=$DB2PATH/lib32 else # Link with db2 o32 object type libraries. DB2_LIBPATH=$DB2PATH/lib fi # If an embedded SQL program, precompile and bind it. if [[ -f $1".sqc" ]] then embprep $1 $2 $3 $4 # Compile the utilemb.c error-checking utility. cc $IRIX_OBJECT_MODE -I$DB2PATH/include -c utilemb.c else # Compile the utilapi.c error-checking utility. cc $IRIX_OBJECT_MODE -I$DB2PATH/include -c utilapi.c fi # Compile the program. cc $IRIX_OBJECT_MODE -I$DB2PATH/include -c $1.c if [[ -f $1".sqc" ]] then # Link the program with utilemb.o cc $IRIX_OBJECT_MODE -o $1 $1.o utilemb.o -L$DB2_LIBPATH -rpath $DB2_LIBPATH -lm -ldb2 else # Link the program with utilapi.o cc $IRIX_OBJECT_MODE -o $1 $1.o utilapi.o -L$DB2_LIBPATH -rpath $DB2_LIBPATH -lm -ldb2 fi
bldapp のコンパイルおよびリンク・オプション |
---|
コンパイル・オプション
|
リンク・オプション
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
|
ソース・ファイル client.c から DB2 API 非組み込み SQL サンプル・プログラム client を構築するには、 次のようにします。
bldapp client
結果として、実行可能ファイル client が作成されます。
この実行可能ファイルを実行するには、実行可能ファイル名、データベース名、 およびデータベースが置かれているインスタンスのユーザー ID とパスワードを入力します。
client database userid password
ソース・ファイル updat.sqc からサンプル・プログラム updat を構築するには、 データベースのパラメーターと、 データベースが置かれているインスタンスのユーザー ID とパスワードを指定するパラメーターを組み込みます。
bldapp updat database userid password
結果として、実行可能ファイル updat が作成されます。 この実行可能ファイルを sample データベースに対して実行するには、 実行可能ファイル名、データベース名、 およびデータベースが置かれているインスタンスのユーザー ID とパスワードを入力します。
updat database userid password
ストアード・プロシージャーは、 データベースにアクセスしてクライアント・アプリケーションに情報を戻すプログラムです。 ストアード・プロシージャーのコンパイルと保管は、サーバー上で行われます。 なお、サーバーは、別のプラットフォームで実行します。
DB2 がサポートするプラットフォームのサーバー上で組み込み SQL ストアード・プロシージャー spserver を作成する場合は、 本書のそのプラットフォーム用の『アプリケーションの構築』という章を参照してください。 DB2 クライアントからアクセスできる他のサーバーについては、 "サポートされるサーバー"を参照してください。
ストアード・プロシージャー spserver を作成したなら、 そのストアード・プロシージャーを呼び出すクライアント・アプリケーションを構築できます。 spclient は、スクリプト・ファイル bldapp を使用して、 ソース・ファイル spclient.sqc から構築することができます。 詳細については、"DB2 API と組み込み SQL アプリケーション"を参照してください。
ストアード・プロシージャーを呼び出すには、実行可能ファイル名、データベース名、 およびデータベースが置かれているインスタンスのユーザー ID とパスワードを入力して、 クライアント・アプリケーションを実行します。
spclient database userid password
クライアント・アプリケーションはストアード・プロシージャー・ライブラリー spserver にアクセスし、 様々なストアード・プロシージャー関数をサーバー・データベース上で実行します。 出力は、クライアント・アプリケーションに戻されます。
ユーザー定義関数 (UDF) とは、ユーザー独自のスカラー関数や表関数のことであり、 これらの関数はサーバー上でコンパイルされ、サーバー上に保管されます。 なお、サーバーは別のプラットフォームで実行します。 DB2 がサポートする各プラットフォームのサーバー上でユーザー定義関数 udfsrv を作成する場合は、 本書のそのプラットフォーム用の『アプリケーションの構築』という章を参照してください。 DB2 クライアントからアクセスできる他のサーバーについては、 "サポートされるサーバー"を参照してください。
udfsrv を構築したなら、スクリプト・ファイル bldapp を使用して、 それを呼び出すための組み込み SQL クライアント・アプリケーション udfcli を sqllib/samples/c のソース・ファイル udfcli.sqc から構築することができます。 詳細については、"DB2 API と組み込み SQL アプリケーション"を参照してください。
UDF プログラムを呼び出すには、実行可能ファイル名、データベース名、 およびデータベースが置かれているインスタンスのユーザー ID とパスワードを入力して、 呼び出しアプリケーションを実行します。
udfcli database userid password
この呼び出しアプリケーションは、 udfsrv ライブラリーから ScalarUDF 関数を呼び出します。
Silicon Graphics IRIX 上のマルチスレッド・アプリケーションは、 -ldb2_th および -lpthread リンク・オプションを使用して、 o32 か n32 のオブジェクト・タイプに対応した POSIX スレッド・バージョンの DB2 ライブラリーにリンクさせる必要があります。
sqllib/samples/c のスクリプト・ファイル bldmt には、 組み込み SQL マルチスレッド・プログラムを作成するためのコマンドが含まれています。 第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 第 2 パラメーター $2 には、接続先のデータベースの名前を指定します。 第 3 パラメーター $3 にはそのデータベースのユーザー ID を、 また $4 にはパスワードを指定します。
#! /bin/ksh # bldmt script file -- Silicon Graphics IRIX # Builds a C multi-threaded embedded SQL program # Usage: bldmt <prog_name> [ <db_name> [ <userid> <password> ]] # Set DB2PATH to where DB2 will be accessed. # The default is the standard instance path. DB2PATH=$HOME/sqllib # To compile with n32 object support, uncomment the following line. # IRIX_OBJECT_MODE=-n32 if [ "$IRIX_OBJECT_MODE" = "-n32" ] ; then # Link with db2 n32 object type libraries. DB2_LIBPATH=$DB2PATH/lib32 else # Link with db2 o32 object type libraries. DB2_LIBPATH=$DB2PATH/lib fi # Precompile and bind the program. embprep $1 $2 $3 $4 # Compile the program. cc $IRIX_OBJECT_MODE -I$DB2PATH/include -c $1.c # Link the program. cc $IRIX_OBJECT_MODE -o $1 $1.o -L$DB2_LIBPATH -rpath $DB2_LIBPATH -lm -ldb2_th -lpthread
上記の -ldb2_th および -lpthread リンク・オプションや、 リンクされているユーティリティー・ファイルがないという点だけでなく、 残りのコンパイルとリンクのオプションも組み込み SQL スクリプト・ファイル bldapp で使用されているものと同じです。 これらのオプションについては、"DB2 API と組み込み SQL アプリケーション"を参照してください。
ソース・ファイル thdsrver.sqc からサンプル・プログラム thdsrver を構築するには、 データベースのパラメーターと、 データベースが置かれているインスタンスのユーザー ID とパスワードを指定するパラメーターを組み込みます。
bldmt thdsrver database userid password
結果として、実行可能ファイル thdsrver が作成されます。
この実行可能ファイルを実行するには、実行可能ファイル名、データベース名、 およびデータベースが置かれているインスタンスのユーザー ID とパスワードを入力します。
thdsrver database userid password