5.1 RDBコマンドの呼び出し方法
RDBコマンドの呼び出し方法について説明します。
RDBコマンドの呼び出しとは
Perlにはコマンドを呼び出す機能が用意されています。この機能を用いて RDBコマンドを呼び出すことが可能です。
RDBコマンドを実行するマシン
PerlスクリプトからRDBコマンドを呼び出したとき、Perlスクリプトを実行 しているマシンのSymfoware/RDBに対するRDBコマンドが呼び出されます。Perl スクリプトを実行しているマシン以外のSymfoware/RDBに対するRDBコマンド の呼び出しはできません。
RDBコマンドを実行するユーザ
PerlスクリプトからRDBコマンドを呼び出したとき、Perlスクリプトを実行 するユーザがRDBコマンドを実行するユーザとなります。
Perlスクリプトから、実行するユーザを判定するRDBコマンドを呼び出す場 合、Perlスクリプトを実行するユーザに対し、資源を操作することのできる権 限を与える必要があります。実行するユーザを判定するRDBコマンドや権限の 詳細は、 RDB管理者ガイド の 各操作で必要な権限 を参照してください。
5.2 RDBコマンドの呼び出し例
5.2 RDBコマンドの呼び出し例
RDBコマンドの呼び出し例について説明します。
5.2.1 systemを用いたRDBコマンドの呼び出し
systemを用いたRDBコマンドの呼び出しについて説明します。
systemとは
systemは、コマンドを実行し、コマンドの結果文字列をそのまま表示し、コ マンドの復帰値を返却します。
systemは、標準入力によるデータを必要としないRDBコマンドの呼び出しに 使用することができます。
systemを用いたRDBコマンドの呼び出し例
systemを用いたRDBコマンドの呼び出し例を以下に示します。
system( "rdbps" ) ;
$rc = unpack( "c", pack( "c", $? >> 8 & 0xff ) ) ; printf "rc : %d¥n", $rc ;
5.2.2 open2を用いたRDBコマンドの呼び出し
open2を用いたRDBコマンドの呼び出しについて説明します。
open2とは
open2は、コマンドに対する標準入力、標準出力のハンドルを返却します。
open2は、コマンドに対して標準入力を送り込み、標準出力のデータを受け 取ることができます。
open2は、標準入力によるデータを必要とするRDBコマンドの呼び出しに使用 することができます。
open2を用いたRDBコマンドの呼び出し例
open2を用いたRDBコマンドの呼び出し例を以下に示します。
use FileHandle ; use IPC::Open2 ;
$pid = open2( ¥*Reader, ¥*Writer, "rdbprt ‑d RDBDB ‑m DEF ‑ 2>&1" ) ; Writer‑>autoflush() ;
print Writer << "EOD" ; SCHEMA(STOCKS)
EOD
print Writer pack( "h", "0xff" ) if( $^O == "MSWin32" ) ; close Writer ;
while( $str = <Reader> ) { # read with line feed mark
printf "%s", $str ; }
wait ;
$rc = unpack( "c", pack( "c", $? >> 8 & 0xff ) ) ; printf "rc : %d¥n", $rc ;