• 検索結果がありません。

UAP 中での SQL の基本構成

ドキュメント内 HiRDB V9 XDM/RD E2接続機能 (ページ 46-51)

3   UAP の設計

3.1  UAP 中での SQL の基本構成

ここでは,UAP中での

SQL

の基本構成の中で,特に

HiRDB

サーバを使用する場合と

XDM/RD E2

を使用する場合で差異がある項目について説明します。

UAP

中での

SQL

の基本構成を次の図に示します。なお,ここでは

UAP

COBOL

言 語で記述する場合について説明します。

3-1 UAP

中での

SQL

の基本構成

(1) 埋込み変数と標識変数の宣言

SQL

で検索したデータを

UAP

側で受け取ったり,反対に

UAP

側のデータを

SQL

で表

3. 

UAPの設計

に挿入したりするには,両方の言語間の橋渡しをする変数が必要になります。このため に,埋込み変数を使用します。また,ナル値を含むデータを受け渡す必要のあるときに は,埋込み変数とあわせて標識変数を使用します。

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.

説明

1.

埋込み変数の宣言の始まりを示します。

2.

埋込み変数を宣言します。SQLと

UAP

側でデータを受け渡しするときには,あ らかじめ決められた規則に従って記述します。SQLのデータ型とデータ記述に ついては,「5.1.1 SQLのデータ型とデータ記述」を参照してください。

3.

埋込み変数

XGRYO

に対する標識変数を宣言します。なお,BLOB型の埋込み変 数に対する標識変数の場合は,PIC S9(9) COMP.となります。

4.

埋込み変数の宣言の終わりを示します。

ナル値の既定値設定機能を使用している場合,検索結果がナル値のときはナル値の代わ りに既定値(数データの場合は

0,文字データの場合は空白)を埋込み変数で受け取るこ

とができます。このとき,既定値とナル値とを区別しなくてよいのであれば,標識変数 を使用する必要がなくなります。ナル値の既定値設定機能については,マニュアル

「VOS3 データマネジメントシステム XDM E2系 XDM/RD E2 SQLリファレンス」

を参照してください。

(2) XDM/RD E2 との接続

XDM/RD E2

にユーザの認可識別子とパスワードを通知して,UAPが

XDM/RD E2

を使 用できる状態にします。これを

XDM/RD E2

との接続といいます。XDM/RD E2との接 続方法を次に示します。

EXEC SQL

CONNECT :XUSERID IDENTIFIED BY :XPSWD END-EXEC.

説明

埋込み変数(:XUSERID)に格納された認可識別子および埋込み変数(:XPSWD)

に格納されたパスワードで

XDM/RD E2

と接続します。

認可識別子

XDM/RD E2

と接続する場合に有効となる認可識別子を次に示します。

埋込み型

UAP

中の

SQL

に,認可識別子を省略した場合に仮定する認可識別子を次 に示します。

定義系

SQL

および動的

SQL

定義系

SQL

以外の静的

SQL

CALL

文で呼び出すプロシジャ中の

SQL

に,認可識別子を省略した場合に仮定する 認可識別子を次に示します。

静的

SQL

プロシジャ所有者(外部プロシジャとして呼び出す

UAP

の所有者と同じ)

動的

SQL

指定できる認可識別子とパスワードの規則は,XDM/RD E2の規則に従います。詳

優先順位 認可識別子の指定優先順序

1 CONNECT文で指定した認可識別子

2 環境変数PDUSERで指定した値

優先順位 認可識別子の指定優先順序

1 CONNECT文で指定した認可識別子

2 1を省略した場合は,環境変数PDUSERで指定した認可識別子

優先順位 認可識別子の指定優先順序

1 プリプロセス時の「A」オプションで指定した既定認可識別子 2 1を省略した場合は,CONNECT文で指定した認可識別子 3 1,2を省略した場合は,環境変数PDUSERで指定した認可識別子

優先順位 認可識別子の指定優先順序

1 CONNECT文で指定した認可識別子

2 1を省略した場合は,環境変数PDUSERで指定した認可識別子

3. 

UAPの設計

細については,マニュアル「VOS3 データマネジメントシステム XDM E2系 

XDM/RD E2 SQL

リファレンス」を参照してください。

(3) カーソル宣言

HiRDB

サーバを使用する場合と

XDM/RD E2

を使用する場合で特に差異はありません。

カーソル宣言については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照して ください。

(4) エラー時の処置の指定

HiRDB

サーバを使用する場合と

XDM/RD E2

を使用する場合で特に差異はありません。

エラー時の処置の指定については,マニュアル「HiRDB Version 9 UAP開発ガイド」を 参照してください。

(5) 検索,更新の SQL(実行文)

データを検索,更新,挿入,または削除するための

SQL

文を記述します。各

SQL

文の 記述方法については,マニュアル「VOS3 データマネジメントシステム XDM E2系 

XDM/RD E2 SQL

リファレンス」を参照してください。

ただし,XDM/RD E2接続機能を使用する場合は,埋込み変数および標識変数の形式と して,INDICATOR句は指定できません。XDM/RD E2の形式と

XDM/RD E2

接続機能 を使用する場合の形式を次に示します。

XDM/RD E2

の形式

XDM/RD E2

接続機能を使用する場合の形式

(6) エラーの判定

SQL

の実行中にエラーが発生した場合,SQLCODE,SQLSTATEを参照すると,XDM/

RD E2

から返されるリターンコードがわかります。そのリターンコードを利用して,そ のあとの処理をどうするか指示します。ただし,「(4) エラー時の処置の指定」で,すで 埋込み変数指定::=〔GROUPITEM〕 埋込み変数名 〔標識変数名〕

パラメタ指定::=パラメタ名 〔標識パラメタ名〕

  標識変数名::=〔INDICATOR〕 埋込み変数名   標識パラメタ名::=〔INDICATOR〕 パラメタ名   埋込み変数名::=:〔ホスト識別子1.〕ホスト識別子2

埋込み変数指定::=〔GROUPITEM〕 埋込み変数名 〔標識変数名〕

パラメタ指定::=パラメタ名 〔標識パラメタ名〕

  標識変数名::=埋込み変数名   標識パラメタ名::=パラメタ名

  埋込み変数名::=:〔ホスト識別子1.〕ホスト識別子2

に同じ内容のエラー処理を指定している場合は,ここで指示する必要はありません。

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が誤動作する場合が あります。

(7) トランザクションの有効化

HiRDB

サーバを使用する場合と

XDM/RD E2

を使用する場合で特に差異はありません。

トランザクションの有効化については,マニュアル「HiRDB Version 9 UAP開発ガイ ド」を参照してください。

(8) トランザクションの無効化

HiRDB

サーバを使用する場合と

XDM/RD E2

を使用する場合で特に差異はありません。

トランザクションの無効化については,マニュアル「HiRDB Version 9 UAP開発ガイ ド」を参照してください。

(9) XDM/RD E2 からの切り離し

トランザクションを正常終了させて,UAPを

XDM/RD E2

から切り離します。

DISCONNECT

文は,RELEASE指定の

COMMIT

文を実行したときと同じになりま す。

トランザクションを正常終了させて,UAPを

XDM/RD E2

から切り離す

SQL

文を次に 示します。

EXEC SQL DISCONNECT END-EXEC.

説明

トランザクションを正常終了させて,UAPを

XDM/RD E2

から切り離します。ま た,トランザクションを取り消したあとに

UAP

XDM/RD E2

から切り離す場合 には,RELEASE指定の

ROLLBACK

文を実行します。なお,DISCONNECT文,

COMMIT

文(RELEASE指定),ROLLBACK文(RELEASE指定)のどれも実行 しないで

UAP

が終了した場合,ROLLBACK文(RELEASE指定)が自動的に実 行され,実行中のトランザクションは無効となるので注意してください。

3. 

UAPの設計

ドキュメント内 HiRDB V9 XDM/RD E2接続機能 (ページ 46-51)