付録K.3 入力情報とキーの定義の関係【4V FMB,4V AFM】
4V FMBまたは4V AFMのSDBデータベースの場合の,入力情報とキーの定義の関係について,次に示します。
要求 |
SDBデータベース種別と定義 |
||||||||
---|---|---|---|---|---|---|---|---|---|
機能 |
レコード型名 |
DBKEY |
RDエリアの指定 |
4V FMB |
4V AFM |
||||
DBKEYはK,Nの構成要素 |
DBKEYはK,Lの構成要素 |
DBKEYはK,Aの構成要素 |
DBKEYはK,L+K,Nの構成要素 |
DBKEYはK,A+K,Nの構成要素 |
|||||
子レコード型数は1 |
|||||||||
キーの定義例 |
(a) |
(b) |
(c) |
(d) |
(e) |
||||
レコードの検索 |
指定あり |
指定あり |
指定あり |
○ |
○ |
○ |
○ |
○ |
○ |
指定なし |
○ |
○ |
○ |
○ |
○ |
○ |
|||
指定なし |
指定あり |
○ |
○ |
○※11 |
○※11 |
○※11 |
○※11 |
||
指定なし |
○ |
○ |
○※1 |
○※1 |
○※1 |
○※1 |
|||
指定なし |
指定あり |
指定あり |
− |
○※2 |
○※2 |
○※2 |
○※2 |
○※2 |
|
指定なし |
− |
○※2 |
○※2 |
○※2 |
○※2 |
○※2 |
|||
指定なし |
指定あり |
− |
○ |
○※11 |
○※11 |
○※11 |
○※11 |
||
指定なし |
− |
○※2 |
○※3 |
○※3 |
○※3 |
○※3 |
|||
レコードの格納 |
指定あり |
指定あり |
○ |
○ |
○ |
○ |
○ |
○ |
|
指定なし |
○ |
○ |
○※4 |
× SQLCODE=-66214 |
○※4 |
× SQLCODE=-66214 |
|||
指定なし |
指定あり |
− |
○※2 |
○※2 |
○※2 |
○※2 |
○※2 |
||
指定なし |
− |
○※2 |
○※5 |
×SQLCODE=-66214 |
○※5 |
×SQLCODE=-66214 |
|||
レコードの更新 |
指定あり |
指定あり※8 |
− |
− |
− |
− |
− |
− |
|
指定なし |
○ |
○※6 |
○※6 |
○※6 |
○※6 |
○※6 |
|||
指定なし |
指定あり※8 |
− |
− |
− |
− |
− |
− |
||
指定なし |
− |
○※7 |
○※7 |
○※7 |
○※7 |
○※7 |
|||
レコードの削除 |
指定あり |
指定あり※8 |
− |
− |
− |
− |
− |
− |
|
指定なし |
○ |
○ |
○ |
○ |
○ |
○ |
|||
レコードの一括削除 |
指定あり |
指定あり |
− |
− |
− |
− |
− |
− |
|
指定なし |
− |
− |
− |
− |
− |
− |
|||
指定なし |
指定あり |
− |
○※2 |
○※2 |
○※2 |
○※2 |
○※2 |
||
指定なし |
− |
○※2 |
× SQLCODE=-66213 |
× SQLCODE=-66213 |
× SQLCODE=-66213 |
× SQLCODE=-66213 |
要求 |
SDBデータベース種別と定義 |
|||||||
---|---|---|---|---|---|---|---|---|
機能 |
レコード型名 |
DBKEY |
RDエリアの指定 |
4V DAMまたは4V MAM |
4V DAM |
そのほか |
||
DBKEYはK,RまたはK,Mの構成要素 |
DBKEYはK,R+K,NまたはK,M+K,Nの構成要素 |
DBKEYはK,RまたはK,Mの構成要素 |
DBKEYはK,R+K,NまたはK,M+K,Nの構成要素 |
|||||
キー値とレコードの対応は1対1 |
キー値とレコードの対応はn(2以上)対1 |
|||||||
子レコード型数はn |
||||||||
キーの定義例 |
(f) |
(g) |
(h) |
(i) |
(j) |
|||
レコードの検索 |
指定あり |
指定あり |
指定あり |
○ |
○ |
○ |
○ |
○ |
指定なし |
○ |
○ |
○ |
○ |
○ |
|||
指定なし |
指定あり |
○ |
○ |
○※12 |
○※12 |
○※11 |
||
指定なし |
○※9 |
○※9 |
× SQLCODE=-66213 |
× SQLCODE=-66213 |
× SQLCODE=-66213 |
|||
指定なし |
指定あり |
指定あり |
○※5 |
○※5 |
○※5 |
○※5 |
○※5 |
|
指定なし |
○※5 |
○※5 |
○※5 |
○※5 |
○※5 |
|||
指定なし |
指定あり |
○※13 |
○※13 |
○※12 |
○※12 |
○※11 |
||
指定なし |
× SQLCODE=-66217 |
× SQLCODE=-66217 |
× SQLCODE=-66217 |
× SQLCODE=-66217 |
× SQLCODE=-66217 |
|||
レコードの格納 |
指定あり |
指定あり |
○ |
○ |
○ |
○ |
○ |
|
指定なし |
○※9 |
○※9 |
× SQLCODE=-66214 |
× SQLCODE=-66214 |
× SQLCODE=-66214 |
|||
指定なし |
指定あり |
○※10 |
○※10 |
○※10 |
○※10 |
○※10 |
||
指定なし |
× SQLCODE=-66214 |
× SQLCODE=-66214 |
× SQLCODE=-66214 |
× SQLCODE=-66214 |
× SQLCODE=-66214 |
|||
レコードの更新 |
指定あり |
指定あり |
− |
− |
− |
− |
− |
|
指定なし |
○※6 |
○※6 |
○※6 |
○※6 |
○※6 |
|||
指定なし |
指定あり |
− |
− |
− |
− |
− |
||
指定なし |
○※7 |
○※7 |
○※7 |
○※7 |
○※7 |
|||
レコードの削除 |
指定あり |
指定あり※8 |
− |
− |
− |
− |
− |
|
指定なし |
○ |
○ |
○ |
○ |
○ |
|||
レコードの一括削除 |
指定あり |
指定あり |
− |
− |
− |
− |
− |
|
指定なし |
− |
− |
− |
− |
− |
|||
指定なし |
指定あり |
○※10 |
○※10 |
○※10 |
○※10 |
○※10 |
||
指定なし |
× SQLCODE=-66213 |
× SQLCODE=-66213 |
× SQLCODE=-66213 |
× SQLCODE=-66213 |
× SQLCODE=-66213 |
- (凡例)
-
○:要求できます。
×:要求できません。
−:APIでエラーとなります。
空白:該当しません。
(a)〜(j)のキーの定義例については,「付録K.3(1) キーの定義例」の(a)〜(j)を参照してください。
DBKEYについては,4V FMBのSDBデータベースの場合は「11.5.1(5)(d) レベル番号,ITEM」を参照してください。4V AFMのSDBデータベースの場合は「11.6.1(5)(d) レベル番号,ITEM」を参照してください。
- 注※1
-
KEYDEF句の定義からキー(K,LまたはK,A)を取得します。
キーが定義されていない場合は,SQLCODE=-66220となります。キーが複数定義されている場合は,SQLCODE=-66213となります。
- 注※2
-
SDBデータベース定義からレコード型名を取得します。
- 注※3
-
SDBデータベース定義からレコード型名を取得します。キー(K,LまたはK,A)はKEYDEF句の定義から取得します。
キーが定義されていない場合は,SQLCODE=-66220となります。キーが複数定義されている場合は,SQLCODE=-66213となります。
- 注※4
-
KEYDEF句の定義からキー(K,L)を取得します。
キーが定義されていない場合は,SQLCODE=-66220となります。キーが複数定義されている場合は,SQLCODE=-66214となります。
- 注※5
-
定義からレコード型名を取得します。キー(K,L)はKEYDEF句の定義から取得します。
キーが定義されていない場合は,SQLCODE=-66220となります。キーが複数定義されている場合は,SQLCODE=-66214となります。
- 注※6
-
レコード型名が指定ありで,検索または格納で更新対象のレコードに位置づけしていることが前提となります。レコード型名が指定ありで,位置づけしていない場合は,SQLCODE=-66207となります。
- 注※7
-
レコード型名が指定なしで,検索または格納で更新対象のレコードに位置づけしていることが前提となります。レコード型名が指定なしで位置づけしていない場合は,SQLCODE=-66207となります。
- 注※8
-
条件式が指定されていても,その指定は無効となります。
- 注※9
-
レコード分割キーは,指定のレコード型名とKEYDEF句の定義から取得します。
- 注※10
-
指定のDBKEY(レコード分割キー)からレコード型名を取得します。
- 注※11
-
4V固有エリア(要求部)の一連番号指定,またはキー以外の条件でユーザキーを指定する場合,KEYDEF句の定義でシーケンシャルインデクスキーのキー値が複数定義されているときは,SQLCODE=-66213となります。
- 注※12
-
4V固有エリア(要求部)の一連番号指定,またはキー以外の条件でユーザキーを指定する場合は,SQLCODE=-66213となります。
- 注※13
-
4V固有エリア(要求部)の一連番号指定,またはキー以外の条件でユーザキーを指定する場合は,SQLCODE=-66217となります。
- 〈この項の構成〉
(1) キーの定義例
TYPE K,RまたはTYPE K,Mを指定した場合,子レコード型は2つ以上指定が必要ですが,ここでは記載を省略しています。
(a) DBKEYが一連番号だけの場合
RECORD R1 02 DBKEY_L1 CHARACTER 4 TYPE D,L RECORD A1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY 03 DBKEY_LN INTEGER TYPE K,N
(b) DBKEYがそのほかのキー(TYPE K,L)だけの場合
RECORD R1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY_L2 CHARACTER 4 TYPE K,L RECORD A1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY 03 DBKEY_L2 CHARACTER 4 TYPE K,L 02 DBKEY_NN INTEGER TYPE N,N
(c) DBKEYがレコード型のRDエリア分割キー(TYPE K,A)だけの場合
RECORD R1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY_L2 CHARACTER 4 TYPE K,A RECORD A1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY 03 DBKEY_L2 CHARACTER 4 TYPE K,A 02 DBKEY_NN INTEGER TYPE N,N
(d) DBKEYがそのほかのキー(TYPE K,L)と一連番号だけの場合
RECORD R1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY_L2 CHARACTER 4 TYPE K,L RECORD A1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY 03 DBKEY_L2 CHARACTER 4 TYPE K,L 03 DBKEY_KN INTEGER TYPE K,N
(e) DBKEYがレコード型のRDエリア分割キー(TYPE K,A)と一連番号だけの場合
RECORD R1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY_L2 CHARACTER 4 TYPE K,A RECORD A1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY 03 DBKEY_L2 CHARACTER 4 TYPE K,A 03 DBKEY_KN INTEGER TYPE K,N
(f) DBKEYがレコード分割キー(TYPE K,R)またはレコード分割キー+レコード型のRDエリア分割キー(TYPE K,M)だけの場合
RECORD R1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY_L2 CHARACTER 4 TYPE K,R (またはTYPE K,M) RECORD A1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY 03 DBKEY_L2 CHARACTER 4 TYPE K,R (またはTYPE K,M) 02 DBKEY_NN INTEGER TYPE N,N
(g) DBKEYがレコード分割キー(TYPE K,R)と一連番号だけの場合(またはレコード分割キー+レコード型のRDエリア分割キー(TYPE K,M)と一連番号だけの場合)
RECORD R1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY_L2 CHARACTER 4 TYPE K,R (またはTYPE K,M) RECORD A1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY 03 DBKEY_L2 CHARACTER 4 TYPE K,R (またはTYPE K,M) 03 DBKEY_KN INTEGER TYPE K,N
(h) DBKEYがレコード分割キー(TYPE K,R)またはレコード分割キー+レコード型のRDエリア分割キー(TYPE K,M)だけの場合
RECORD R1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY_L2 CHARACTER 4 TYPE K,R (またはTYPE K,M) RECORD A1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY 03 DBKEY_L2 CHARACTER 4 TYPE K,R (またはTYPE K,M) 02 DBKEY_NN INTEGER TYPE N,N
(i) DBKEYがレコード分割キー(TYPE K,R)と一連番号だけの場合(またはレコード分割キー+レコード型のRDエリア分割キー(TYPE K,M)と一連番号だけの場合)
RECORD R1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY_L2 CHARACTER 4 TYPE K,R (またはTYPE K,M) RECORD A1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY 03 DBKEY_L2 CHARACTER 4 TYPE K,R (またはTYPE K,M) 03 DBKEY_KN INTEGER TYPE K,N
(j) DBKEYがレベル2〜7のキーと一連番号の場合
RECORD R1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY_L2 CHARACTER 4 TYPE K,L 02 DBKEY_L3 CHARACTER 4 TYPE K,L 02 DBKEY_L4 CHARACTER 4 TYPE K,L 02 DBKEY_L5 CHARACTER 4 TYPE K,L 02 DBKEY_L6 CHARACTER 4 TYPE K,L 02 DBKEY_L7 CHARACTER 4 TYPE K,R RECORD A1 02 DBKEY_L1 CHARACTER 4 TYPE D,L 02 DBKEY 03 DBKEY_L2 CHARACTER 4 TYPE K,L 03 DBKEY_L3 CHARACTER 4 TYPE K,L 03 DBKEY_L4 CHARACTER 4 TYPE K,L 03 DBKEY_L5 CHARACTER 4 TYPE K,L 03 DBKEY_L6 CHARACTER 4 TYPE K,L 03 DBKEY_L7 CHARACTER 4 TYPE K,R 03 DBKEY_KN INTEGER TYPE K,N