14.3.8 ファイルに記述したDMLコマンドを実行する場合
4V FMBのSDBデータベースのルートレコードに,レコード実現値を格納します。入力ファイル(infile.txt)に記述したDMLコマンドを実行し,実行結果を出力ファイル(outfile.txt)に出力します。
-
SDBデータベース名:FMB1
-
操作対象レコード名:FMB1_RECA
-
DMLコマンドを入力ファイル(infile.txt)に記述する
START "FMB1" ACSMODE UPDATE ENQOPT EXCLUSIVE; STORE "FMB1_RECA" SET "DBKEY_L1" = 'KEY1', "RECA_UD1" = 123., "RECA_UD2" = -9.8 PAGESWITCH OCCUPY ; YES ←YESを指定します。※ COMMIT; #EXIT;
注※ STOREコマンドの実行を許可するYESを指定する必要があります。
-
pdsdbexeコマンドを実行する
pdsdbexe -u '"User01"/"Pswd01"' <infile.txt >outfile.txt
-
実行結果(outfile.txt)を確認する
pdsdbexe **** SDB Database Executor 09-60 **** 2015-12-14 16:49:44 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 CONNECT INFORMATION SERVER NAME "testfes1" PROCESS ID : 12319 CONNECT NUMBER : 12 KFPB64050-I CONNECT command processing completed COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+----8 START "FMB1" ACSMODE UPDATE ENQOPT EXCLUSIVE; ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 DIRECTORY CHECK DATE INFORMATION PDSDBDEF EXEC DATE : 2015-12-14 16:20:46.67 SDB DIRECTORY UPDATE DATE : 2015-12-14 16:20:49.16 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 HiRDB SERVER VERSION INFORMATION SERVER VERSION : 09-60 KFPB64050-I DINF(GET DATE) command processing completed ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 START INFORMATION SDB DATABASE NAME "FMB1" HANDLE NUMBER : 1 ACSMODE : UPDATE ENQOPT : EXCLUSIVE AUTODEQ : NO RDAREAVAL : NO KFPB64050-I DINF(GET SDB SUMMARY) command processing completed KFPB64050-I DINF(GET SDB DETAIL) command processing completed KFPB64050-I START command processing completed COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+----8 STORE "FMB1_RECA" SET "DBKEY_L1" = 'KEY1', NEXT ? +----2----+----3----+----4----+----5----+----6----+----7----+----8 "RECA_UD1" = 123., NEXT ? +----2----+----3----+----4----+----5----+----6----+----7----+----8 "RECA_UD2" = -9.8 NEXT ? +----2----+----3----+----4----+----5----+----6----+----7----+----8 PAGESWITCH OCCUPY NEXT ? +----2----+----3----+----4----+----5----+----6----+----7----+----8 ; ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 STORE RECORD INFORMATION RECORD KIND : ROOT RECORD AGREE TO STORE ? [ENTER YES OR NO] YES ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 STORE INFORMATION STORE SERIAL NUM : 0 ROWID : X'070000001B00000000000100' SECOND INDEX KIND : NOUSE RECORD POINTER STATUS : NONE KFPB64050-I STORE command processing completed COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+----8 COMMIT; KFPB64050-I COMMIT command processing completed COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+----8 #EXIT; KFPB64050-I DISCONNECT command processing completed KFPB64050-I #EXIT command processing completed KFPB64000-I The pdsdbexe terminated, return code = 0
- ■入力ファイルの記述規則
-
-
入力ファイル中に記述する文字の文字コードは,次の表に示すようにクライアント環境定義のPDLANGで指定している文字コードと同じにしてください。PDLANGについては,マニュアル「HiRDB UAP開発ガイド」の「クライアント環境定義の設定内容」を参照してください。
表14‒4 入力ファイルの文字コード PDLANGの指定値
入力ファイルの文字コード
備考
SJIS
Shift-JIS
なし。
UTF8
Unicode(UTF-8)
BOMは付加できません。
- 参考
-
PDLANGで指定している文字コードは,pdsetupコマンドの-cオプションで指定した文字コードと同じです。
-
改行コードは,X'0A'(LF)または,X'0D0A'(CRLF)としてください。
-
#EXITコマンドの指定は省略できます。
-
EOF制御文字がある場合,#EXITコマンドの指定と同じ処理が行われます。
-
#EXITコマンドを省略した場合,pdsdbexe操作コマンドが終了した行の改行後からEOF制御文字までの間に,次のpdsdbexe操作コマンドの開始となる入力があると,エラーとなります。そのため,ファイルの末尾には#EXITコマンドを指定することを推奨します。
エラーとなる例を次に示します。
-
- ■出力ファイルへの出力規則
-
-
出力ファイル中の文字コードは,次の表に示すようにクライアント環境定義のPDLANGで指定している文字コードと同じになります。PDLANGについては,マニュアル「HiRDB UAP開発ガイド」の「クライアント環境定義の設定内容」を参照してください。
表14‒5 出力ファイルの文字コード PDLANGの指定値
出力ファイルの文字コード
備考
SJIS
Shift-JIS
なし。
UTF8
Unicode(UTF-8)
BOMは付加されません。
-
改行コードは,X'0A'(LF)で出力されます。ただし,エラーが発生した場合,標準出力にX'0D0A'(CRLF)が出力されることがあります。
-