You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

[ |../../index.htm#lansa/l4wdev04_0295.htm]
現在地:

アクセス経路の例

テーブル定義の過程で、アクセス経路を定義する例を紹介します。
次に示す、互いに関連した4つのテーブルがあるとしましょう。

テーブル:

 

ORDHDR

ORDLIN

CUSMST

PROMST

説明:

 

注文の頭書き

注文の明細行

顧客マスター

製品マスター

列:

 

ORDNUM CUSTNO DATE

ORDNUM ORDLIN QUANTY PRODNO

CUSTNO NAME ADDR1 ADDR2 ADDR3

PRODNO DESC PRICE TAXRTE

プライマリ・キー

1

ORDNUM

ORDNUM

CUSTNO

PRODNO

 

2

 

ORDLIN

 

 

インデックス:

 

ORDHDRV1O

RDLINV1

 

 

そのキー

1

CUSTNO

PRODNO

 

 

このデータベースを順にたどって必要な情報を取得できるようにするためには、次のアクセス経路を定義する必要があります。

定義名

アクセス経路名

このルートを経由してアクセスするテーブル

想定する最大レコード数

レコードが見つからなかった場合の動作

アクセスに使うキー列/値

ORDHDR

ORDHRT1

ORDLIN

99

IGNORE

ORDNUM

 

ORDHRT2

CUSMST

1

ABORT

CUSTNO

ORDLIN

ORDLRT1

ORDHDR

1

ABORT

ORDNUM

 

ORDLRT2

PROMST

1

ABORT

PRODNO

CUSMST

CUSMRT1

ORDHDRV1

9999

IGNORE

CUSTNO

PROMST

PROMRT1

ORDLINV1

9999

IGNORE

PRODNO

この表を見ると、アクセス経路の連鎖をどのようにたどっていくかがわかります。例えばPROMST(製品マスター)を起点とすると、次のような経路が見つかります。

  • PROMSTから、アクセス経路PROMRT1をたどって、当該製品が現れる注文の明細行(ORDLIN)を取得(インデックスORDLINV1経由)。
  • ORDLINから、アクセス経路ORDLRT1をたどって、対応する注文書の顧客番号や日付(ORDHDR)を取得。PROMSTに戻るアクセス経路ORDLRT2は、ループになるのを避けるため無視。
  • ORDHDRから、アクセス経路ORDHRT2をたどって、対応する顧客の名前や住所(CUSMST)を取得。やはりアクセス経路ORDHRT1はループを避けるため無視。

[ |../../index.htm#lansa/l4wdev04_0295.htm]

  • No labels