Hitachi

ノンストップデータベース HiRDB Version 9 構造型データベース機能


付録K.3 入力情報とキーの定義の関係【4V FMB,4V AFM】

4V FMBまたは4V AFMのSDBデータベースの場合の,入力情報とキーの定義の関係について,次に示します。

表K‒6 入力情報とキーの定義の関係(1/2)

要求

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

表K‒7 入力情報とキーの定義の関係(2/2)

要求

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