kprolog K-Prolog Compiler Version 6.0

データベース機能

データベース属性の生成/消去/取得には、 db_create/2db_abolish/1db_whatis/2を用い、 データの書き込み/内容取得/削除には、 db_put/2db_put/3db_get/2db_get/3db_delete/2を用います。

データをバックトラックによって順に取得するために db_next/3が用意されています。 このとき、データの読み込み位置を先頭に戻すために db_rewind/1が用意されています。 さらに、データベースは同じものを用いていても、データの読み込み位置の 異なる別のデータベースとして扱いたい場合には db_reference/2を用います。

また、データベースをファイルに読み書きするために、 db_writeall/1db_readall/1 が用意されています。


db_create(@Name,@Attr)
Nameデータベース名
Attr属性

Name で指定されるアトムについて、データベースの属性を定義します。 Name がすでにデータベースとして定義されているときは、エラーになりま す。Attr として以下のものが指定できます。

list
リスト
array(N)
N要素の配列
hash(N)
サイズNのハッシュ
keyedhash(N)
サイズNのキーに関するハッシュ
tree(N)
葉のサイズがNの木
keyedtree(N)
葉のサイズがNのキーに関する木
Nは整数で、データベースの性質によって決定すべき値です。

エラー
instantiation_error
type_error
resource_error


db_abolish(@Name)
Nameデータベース名

Name で指定されるデータベースの内容と属性を消去します。

エラー
instantiation_error
type_error
domain_error


db_put(@Name,@Key)
Nameデータベース名
Keyキー
db_put(@Name,@Key,@Value)
Nameデータベース名
Keyキー
Value

Name で指定されるデータベースに、Value または Key-Value の組を追加 します。Keyは、hash型、tree型のときは指定しません。(これらのとき、Value に 変数を指定することは無意味です)。list型のとき、 Keyは list_first、list_current または list_last です。

エラー
instantiation_error
type_error
domain_error


db_get(@Name,?Key)
Nameデータベース名
Keyキー
db_get(@Name,?Key,?Value)
Nameデータベース名
Keyキー
Value

list型、array型、keyedhash型、keyedtree型 のとき、Name で指定されるデータベースから Key で指定するキーに対応 する値 Value を求めます。Key が存在しないキーのときは失敗します。
list型のとき、Key はlist_first、list_current または list_last です。
hash型、tree型のとき、Key は指定しません。Value に指定する項が データベース中にあれば成功し、なければ失敗します。

エラー
instantiation_error
type_error
domain_error


db_delete(@Name,@Key)
Nameデータベース名
Keyキー

array、list、keyedhash、keyedtree型のときは、Name で指定される データベースから Key で指定する Key-Value の組を削除します。 存在しないキーを指定すると単に成功します。hash型、tree型のときは、 Name で指定されるデータベースから、値 Key を削除します。 hash または tree型で使います。Value がデータベースに入っていない場合 には、単に成功します。

エラー
instantiation_error
type_error
domain_error


db_rewind(@Name)
Nameデータベース名

Name で指定されるデータベースの現在位置をデータベースの先頭に戻します。

エラー
instantiation_error
type_error
domain_error


db_next(@Name,?Key,?Value)
Nameデータベース名
Keyキー
Value

Name で指定されるデータべースの内容を逐次に読み取ります。 データベースの終りに達すると failします。 Keyは、hash型、tree型、list型のとき無意味です

エラー
instantiation_error
type_error
domain_error


db_reference(@Name,@Alias)
Nameデータベース名
Alias別名

Name で指定するデータベースの別名を Alias とします。Alias は データベースとして定義されていてはいけません。 Alias の内容は Name の内容と同一になりますが、 現在位置に関しては別々に管理されます。

エラー
instantiation_error
type_error
domain_error


db_whatis(@Name,@Attr)
Nameデータベース名
Attr属性

Name で指定するデータベースの属性を Attr に返します。

エラー
instantiation_error
type_error
domain_error


db_writeall(@Name)
Nameデータベース名

Name で指定するデータベースの内容全部をファイル出力に適当な形式で 書き出します。

エラー
instantiation_error
type_error
domain_error


db_readall(@Name)
Nameデータベース名

Name で指定するデータベースの内容にファイル入力から読み取った値を追加します。 ファイル入力は db_writeall で作成したファイルに接続されていなければなりません。

エラー
instantiation_error
type_error
domain_error



一つ上に戻る 組込み述語に戻る 目次に戻る