2.3.8 提供API発行の流れ
API発行順序を次に示します。
- 注※
-
個別終了は省略可。省略した場合はトランザクション終了時に自動的に個別終了します。
- (例)FMBの従属レコード削除,かつ,DAMにレコード追加
-
SDB-Aの従属レコードC-3を削除し,SDB-BのレコードE3を追加します。
複数エントリを使用することで,A,B,C1検索を一度で行うこともできます。
図2‒15 API発行のイメージ
- 〈この項の構成〉
(1) アクセス方法
HiRDBの構造型DB機能では,1つ以上のRDエリアにSDBデータベースを格納できます。これを横分割といいます。横分割は,SDBデータベース定義でRDエリア分割キーを含むキーを定義することで可能となります。
格納されたRDエリアが1つ以上ある場合でSDBにアクセスする場合,通常のアクセスでは,条件を指定することで,それぞれのRDエリアに位置づけて検索できますが,条件を指定しない場合では,現在位置づいているRDエリア内だけを検索し,RDエリアを越えた検索を行うことができません。
しかし,レコードを抽出するような場合では,条件は指定しないで,RDエリアを越えてレコードのキー値の順にアクセスしたい場合があります。その場合は,店群順アクセスまたはDAM順アクセスを行うことで可能となります。
通常のアクセス/店群順アクセス/DAM順アクセスの特徴と使用可能な状況を次の表に示します。また,それぞれのアクセス例を次の図に示します。
以降で,「個別開始」の記述がある個所は,DBアクセス(検索)発行時,かつ,個別開始/終了一括要求オプションに'Y'を指定した場合,およびDBアクセス/一括削除/システム構成表示発行時,かつ個別開始実行要求オプションに'Y'を指定した場合も,個別開始指定値を指定できます。
項番 |
アクセス方法 |
特徴 |
オンライン |
オフラインバッチ |
DB種別 |
|||||
---|---|---|---|---|---|---|---|---|---|---|
FMB |
DAM |
MAM |
TAM |
SAM |
||||||
ルート |
子 |
|||||||||
1 |
通常アクセス |
単一のRDエリア内だけが検索範囲となります。条件を指定しない場合,現在位置づいているRDエリアを越えた検索はできません。条件を指定することで,ぞれぞれのRDエリアに位置づけて検索できます。 |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
2 |
店群順アクセス |
指定された1つ以上のRDエリアが検索範囲となり,条件を指定しなくても,RDエリアを越えて,キーの昇順にアクセスできます。 |
○ |
○ |
○ |
× |
○ |
× |
× |
× |
3 |
DAM順アクセス |
店群順アクセスの動作に加えて,異なるレコードのキーについてもキーの昇順に検索できます。そのため,1つ以上のRDエリアに格納されたすべてのレコードをキーの昇順にアクセスできます。 |
○ |
○ |
× |
× |
○ |
× |
× |
× |
(2) 店群順アクセス
店群順アクセスを行う場合は,検索範囲となるRDエリア名称の指定と,DBアクセス時の検索位置を決めるための基点条件の指定なしが条件となります。
(a) RDエリア名称の指定
店群順アクセスでは,アクセスするRDエリア名称が必須です。
アクセスするRDエリア名称は,環境変数EESDHRDAOPT,EESDHRDAおよびEESDHRDAOPTFORCE,または,個別開始(ee_sdh_strt()/CBLEESDH('STRT '))に指定する店番限定有無およびRDエリア名称格納エリアに指定することで有効となります。指定するRDエリア名称は,複数SDBのRDエリア名称をまとめて指定できます。複数指定する場合は,RDエリア名称を「,」で区切ってください。個別開始と環境変数の両方に指定した場合の組み合わせについては,表2-18に示します。また,指定例を図2-17に示します。
RDエリア名称は,横分割なし(RDエリア分割キー定義なし)の場合やMAM/TAM/SAMでは,有効となりません。
項番 |
分類 |
指定するAPIまたは環境変数 |
説明 |
オンライン |
オフラインバッチ |
---|---|---|---|---|---|
1 |
環境変数 |
EESDHRDAOPT EESDHRDA EESDHRDAOPTFORCE |
検索範囲となるRDエリアを指定します。 EESDHRDAOPTは,全RDエリア/ユーザ指定RDエリア/RDエリア指定なしから選択できます。ユーザ指定RDエリアの場合は,RDエリア名称をEESDHRDAに指定してください。 通常,環境変数指定値より個別開始指定値が有効となりますが,EESDHRDAOPTFORCEを指定することで,個別開始指定値を無視し,環境変数指定値を有効にできます。 環境変数に指定した場合,FMBおよびDAMのすべての個別開始処理で,店群順アクセスかの判定が行われます。MAM/TAM/SAMでは参照しません。 環境変数の省略値を次に示します。
|
○ |
○ |
2 |
提供API |
個別開始 ee_sdh_strt()/ CBLEESDH('STRT ') ■店番限定有無 ■RDエリア名称格納エリア |
検索範囲となるRDエリアを指定します。 店番限定有無は,環境変数依存/全RDエリア/ユーザ指定RDエリア/RDエリア指定なしから選択できます。ユーザ指定RDエリアの場合は,RDエリア名称をRDエリア名称格納エリアに指定してください。 FMBおよびDAMに指定できます。MAM/TAM/SAMに指定した場合は無視します。 |
○ |
○ |
項番 |
環境変数 |
個別開始 |
指定値として有効な値 |
||||||
---|---|---|---|---|---|---|---|---|---|
EESDHRDAOPT |
EESDHRDA |
EESDHRDAOPTFORCE |
店番限定有無 |
RDエリア名称格納 エリア |
RDエリア指定 なし |
ユーザ指定RDエリア※5 |
全 RD エリア |
||
環境変数指定値 |
個別開始指定値 |
||||||||
1 |
'N':RDエリア指定なし |
'N' |
△:環境変数に従う |
○ |
× |
× |
× |
||
2 |
'N':RDエリア指定なし |
○ |
× |
× |
× |
||||
3 |
'M':ユーザ指定RDエリア |
× ※3 |
× |
× |
× |
× |
|||
4 |
○ ※4 |
× |
× |
○ |
× |
||||
5 |
'A':全RDエリア |
× |
× |
× |
○ |
||||
6 |
'M':ユーザ指定RDエリア |
×※1 |
△:環境変数に従う |
○ |
× |
× |
× |
||
7 |
'N':RDエリア指定なし |
○ |
× |
× |
× |
||||
8 |
'M':ユーザ指定RDエリア |
× ※3 |
× |
× |
× |
× |
|||
9 |
○ ※4 |
× |
× |
○ |
× |
||||
10 |
'A':全RDエリア |
× |
× |
× |
○ |
||||
11 |
○※2 |
△:環境変数に従う |
× |
○ |
× |
× |
|||
12 |
'N':RDエリア指定なし |
○ |
× |
× |
× |
||||
13 |
'M':ユーザ指定RDエリア |
× ※3 |
× |
× |
× |
× |
|||
14 |
○ ※4 |
× |
× |
○ |
× |
||||
15 |
'A':全RDエリア |
× |
× |
× |
○ |
||||
16 |
'A':全RDエリア |
△:環境変数に従う |
× |
× |
× |
○ |
|||
17 |
'N':RDエリア指定なし |
○ |
× |
× |
× |
||||
18 |
'M':ユーザ指定RDエリア |
× ※3 |
× |
× |
× |
× |
|||
19 |
○ ※4 |
× |
× |
○ |
× |
||||
20 |
'A':全RDエリア |
× |
× |
× |
○ |
||||
21 |
'N':RDエリア指定なし |
'Y' |
△:環境変数に従う |
○ |
× |
× |
× |
||
22 |
'N':RDエリア指定なし |
○ |
× |
× |
× |
||||
23 |
'M':ユーザ指定RDエリア |
− |
○ |
× |
× |
× |
|||
24 |
'A':全RDエリア |
○ |
× |
× |
× |
||||
25 |
'M':ユーザ指定RDエリア |
×※1 |
△:環境変数に従う |
○ |
× |
× |
× |
||
26 |
'N':RDエリア指定なし |
○ |
× |
× |
× |
||||
27 |
'M':ユーザ指定RDエリア |
− |
○ |
× |
× |
× |
|||
28 |
'A':全RDエリア |
○ |
× |
× |
× |
||||
29 |
○※2 |
△:環境変数に従う |
× |
○ |
× |
× |
|||
30 |
'N':RDエリア指定なし |
× |
○ |
× |
× |
||||
31 |
'M':ユーザ指定RDエリア |
− |
× |
○ |
× |
× |
|||
32 |
'A':全RDエリア |
× |
○ |
× |
× |
||||
33 |
'A':全RDエリア |
△:環境変数に従う |
× |
× |
× |
○ |
|||
34 |
'N':RDエリア指定なし |
× |
× |
× |
○ |
||||
35 |
'M':ユーザ指定RDエリア |
− |
× |
× |
× |
○ |
|||
36 |
'A':全RDエリア |
× |
× |
× |
○ |
(b) DBアクセス
FMBのルートレコードまたはDAMの検索時,または,FMBの複数レコードの検索時に,次の指定をすることで,RDエリア名称指定による検索範囲で店群順アクセスが開始します。その後,同一エントリに対して,指示コード'N'または指示コード'S'(複数レコードの検索時だけ)指定の検索を繰り返すと,検索範囲内でRDエリアを越えてキー値の順に検索できます。
- 検索範囲内の先頭から店群順アクセスを行う場合
-
個別開始発行時の指定値
-
順アクセス内基点条件オプション'N'または'△'を指定
DBアクセス発行時の指定値
-
レコード対応エントリを使用
-
要求コード'FTCH'/'FTCA'を指定
-
指示コード'F'(当該レコードが読み込み済みでない場合の指示コード'N'指定を含む)を指定
-
条件コード'N'または,条件コード'C'で「基点条件なし」の条件を指定
-
- 検索範囲内の特定位置から店群順アクセスを行う場合
-
個別開始発行時の指定値
-
順アクセス内基点条件オプション'Y'を指定
DBアクセス発行時の指定値
-
レコード対応エントリを使用
-
要求コード'FTCH'/'FTCA'を指定
-
指示コード'F'(当該レコードが読み込み済みでない場合の指示コード'N'指定を含む)を指定
-
基点条件を次の表に示します。
また,RDエリア名称指定と基点条件有無の組み合わせによって,選択するアクセス方法を表2-20に,例を図2-18に示します。
項番 |
用語 |
説明 |
---|---|---|
1 |
基点条件 |
検索範囲の開始位置を指定する条件を指し,次のどちらかの条件を満たすことで基点条件「あり」となります。次を満たさない場合は基点条件「なし」となります。
|
項番 |
横分割有無 |
RDエリア名称指定 |
順アクセス内基点条件オプション |
基点条件 |
アクセス方法 |
備考 |
|||
---|---|---|---|---|---|---|---|---|---|
条件コード |
キーの条件の比較記号 |
通常アクセス |
店群順アクセス |
店群順アクセス (位置指定あり) |
|||||
1 |
× |
− |
− |
− |
○ |
× |
× |
||
2 |
○ |
× |
− |
'K' |
○ |
× |
× |
||
3 |
'C' |
'GT' or '>△'を含む |
○ |
× |
× |
||||
4 |
'GE' or '>='を含む |
○ |
× |
× |
|||||
5 |
'EQ' or '△='を含む |
○ |
× |
× |
|||||
6 |
その他 |
× |
× |
× |
エラー※2 |
||||
7 |
'S'※1 |
× |
× |
× |
エラー※2 |
||||
8 |
'N' |
× |
× |
× |
エラー※2 |
||||
9 |
○ |
× |
'K' |
○ |
× |
× |
|||
10 |
'C' |
'GT' or '>△'を含む |
○ |
× |
× |
||||
11 |
'GE' or '>='を含む |
○ |
× |
× |
|||||
12 |
'EQ' or '△='を含む |
○ |
× |
× |
|||||
13 |
その他 |
× |
○ |
× |
|||||
14 |
'S'※1 |
× |
○ |
× |
|||||
15 |
'N' |
× |
○ |
× |
|||||
16 |
○ |
'K' |
× |
× |
○ |
||||
17 |
'C' |
'GT' or '>△'を含む |
× |
× |
○ |
||||
18 |
'GE' or '>='を含む |
× |
× |
○ |
|||||
19 |
'EQ' or '△='を含む |
× |
× |
○ |
|||||
20 |
その他 |
× |
○ |
× |
|||||
21 |
'S'※1 |
× |
○ |
× |
|||||
22 |
'N' |
× |
○ |
× |
(3) DAM順アクセス
DAM順アクセスを行う場合は,RDエリア名称の指定など,基本的に店群順アクセスと同じであるため,「2.3.8(2) 店群順アクセス」の店群順アクセスの説明を,DAM順アクセスに読み替えてください。次に,異なる点だけを挙げます。
(a) RDエリア名称の指定
差異はありません。
(b) DBアクセス
DAMの検索時に,次の指定をすることで,RDエリア名称指定による検索範囲でDAM順アクセスが開始します。その後,同一エントリに対して,指示コード'N'指定の検索を繰り返すと,検索範囲内でRDエリアを越えてキー値の順に検索できます。
- 検索範囲内の先頭からDAM順アクセスを行う場合
-
個別開始発行時の指定値
-
順アクセス内基点条件オプション'N'または'△'を指定
DBアクセス発行時の指定値
-
DB対応エントリを使用
-
要求コード'FTCH'を指定
-
指示コード'F'(当該レコードが読み込み済みでない場合の指示コード'N'指定を含む)を指定
-
条件コード'N'または,条件コード'C'で「基点条件なし」の条件を指定
-
- 検索範囲内の特定位置からDAM順アクセスを行う場合
-
個別開始発行時の指定値
-
順アクセス内基点条件オプション'Y'を指定
DBアクセス発行時の指定値
-
DB対応エントリを使用
-
要求コード'FTCH'を指定
-
指示コード'F'(当該レコードが読み込み済みでない場合の指示コード'N'指定を含む)を指定
-