スケーラブルデータベースサーバ HiRDB Version 8 XDM/RD E2接続機能
ここでは,UAP中でのSQLの基本構成の中で,特にHiRDBサーバを使用する場合とXDM/RD E2を使用する場合で差異がある項目について説明します。
UAP中でのSQLの基本構成を次の図に示します。なお,ここではUAPをCOBOL言語で記述する場合について説明します。
図3-1 UAP中でのSQLの基本構成
SQLで検索したデータをUAP側で受け取ったり,反対にUAP側のデータをSQLで表に挿入したりするには,両方の言語間の橋渡しをする変数が必要になります。このために,埋込み変数を使用します。また,ナル値を含むデータを受け渡す必要のあるときには,埋込み変数とあわせて標識変数を使用します。
SQL中での埋込み変数および標識変数の指定方法については,「(5) 検索,更新のSQL(実行文)」を参照してください。
埋込み変数および標識変数の宣言例を次に示します。
EXEC SQL BEGIN DECLARE SECTION ……………1 END-EXEC. 77 XUSERID PIC X(7).………………2 77 XPSWD PIC X(7).………………2 77 XSCODE PIC X(4).………………2 77 XSNAME PIC N(8).………………2 77 XGRYO PIC S9(9) COMP.………2 77 IGRYO PIC S9(4) COMP.………3 EXEC SQL END DECLARE SECTION ………………4 END-EXEC.
ナル値の既定値設定機能を使用している場合,検索結果がナル値のときはナル値の代わりに既定値(数データの場合は0,文字データの場合は空白)を埋込み変数で受け取ることができます。このとき,既定値とナル値とを区別しなくてよいのであれば,標識変数を使用する必要がなくなります。ナル値の既定値設定機能については,マニュアル「VOS3 データマネジメントシステム XDM E2系 XDM/RD E2 SQLリファレンス」を参照してください。
XDM/RD E2にユーザの認可識別子とパスワードを通知して,UAPがXDM/RD E2を使用できる状態にします。これをXDM/RD E2との接続といいます。XDM/RD E2との接続方法を次に示します。
EXEC SQL CONNECT :XUSERID IDENTIFIED BY :XPSWD END-EXEC.
| 優先順位 | 認可識別子の指定優先順序 |
|---|---|
| 1 | CONNECT文で指定した認可識別子 |
| 2 | 環境変数PDUSERで指定した値 |
| 優先順位 | 認可識別子の指定優先順序 |
|---|---|
| 1 | CONNECT文で指定した認可識別子 |
| 2 | 1を省略した場合は,環境変数PDUSERで指定した認可識別子 |
| 優先順位 | 認可識別子の指定優先順序 |
|---|---|
| 1 | プリプロセス時の「A」オプションで指定した既定認可識別子 |
| 2 | 1を省略した場合は,CONNECT文で指定した認可識別子 |
| 3 | 1,2を省略した場合は,環境変数PDUSERで指定した認可識別子 |
| 優先順位 | 認可識別子の指定優先順序 |
|---|---|
| 1 | CONNECT文で指定した認可識別子 |
| 2 | 1を省略した場合は,環境変数PDUSERで指定した認可識別子 |
HiRDBサーバを使用する場合とXDM/RD E2を使用する場合で特に差異はありません。カーソル宣言については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
HiRDBサーバを使用する場合とXDM/RD E2を使用する場合で特に差異はありません。エラー時の処置の指定については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
データを検索,更新,挿入,または削除するためのSQL文を記述します。各SQL文の記述方法については,マニュアル「VOS3 データマネジメントシステム XDM E2系 XDM/RD E2 SQLリファレンス」を参照してください。
ただし,XDM/RD E2接続機能を使用する場合は,埋込み変数および標識変数の形式として,INDICATOR句は指定できません。XDM/RD E2の形式とXDM/RD E2接続機能を使用する場合の形式を次に示します。
埋込み変数指定::=〔GROUPITEM〕 埋込み変数名 〔標識変数名〕 パラメタ指定::=パラメタ名 〔標識パラメタ名〕 標識変数名::=〔INDICATOR〕 埋込み変数名 標識パラメタ名::=〔INDICATOR〕 パラメタ名 埋込み変数名::=:〔ホスト識別子1.〕ホスト識別子2 |
埋込み変数指定::=〔GROUPITEM〕 埋込み変数名 〔標識変数名〕 パラメタ指定::=パラメタ名 〔標識パラメタ名〕 標識変数名::=埋込み変数名 標識パラメタ名::=パラメタ名 埋込み変数名::=:〔ホスト識別子1.〕ホスト識別子2 |
SQLの実行中にエラーが発生した場合,SQLCODE,SQLSTATEを参照すると,XDM/RD E2から返されるリターンコードがわかります。そのリターンコードを利用して,そのあとの処理をどうするか指示します。ただし,「(4) エラー時の処置の指定」で,すでに同じ内容のエラー処理を指定している場合は,ここで指示する必要はありません。
XDM/RD E2接続機能を使用する場合は,SQLCODE変数で受け取るSQLCODEは,XDM/RD E2が設定するSQLCODEまたはHiRDBクライアントが設定するSQLCODEとなります。また,SQLSTATE変数で受け取る値は,XDM/RD E2が設定するSQLSTATEまたはHiRDBクライアントが設定するSQLSTATEとなります。
SQLCODEおよびSQLSTATEについては,マニュアル「VOS3 データマネジメントシステム XDM E2系 XDM/RD E2 SQLリファレンス」を参照してください。
DECLARE CURSORのような宣言文の直後に,エラーの判定はしないでください。エラーの判定をすると,不正なSQLCODEを参照して,XDM/RD E2が誤動作する場合があります。
HiRDBサーバを使用する場合とXDM/RD E2を使用する場合で特に差異はありません。トランザクションの有効化については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
HiRDBサーバを使用する場合とXDM/RD E2を使用する場合で特に差異はありません。トランザクションの無効化については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
トランザクションを正常終了させて,UAPをXDM/RD E2から切り離します。DISCONNECT文は,RELEASE指定のCOMMIT文を実行したときと同じになります。
トランザクションを正常終了させて,UAPをXDM/RD E2から切り離すSQL文を次に示します。
EXEC SQL DISCONNECT END-EXEC.
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.