6.10.4 使用できる機能と制限事項
Btrieve(Pervasive.SQL)による索引編成ファイルで使用できる機能と,制限事項を次に示します。
(1) 使用できる機能
Btrieve(Pervasive.SQL)による索引編成ファイルでは,次の機能が使用できます。
(a) 入出力手続き文
OPEN文,CLOSE文,READ文,WRITE文,REWRITE文,DELETE文,START文,UNLOCK文が使用できます。
(b) ファイル共用
ファイル排他,レコード施錠が使用できます。レコード施錠としては,自動単一レコード施錠,手動複数レコード施錠のどちらも使用できます。
(c) 合成キー
1〜8個の項目が指定できます。項目の合計は255バイト以下でなければなりません。
(d) 逆順読み
PREVIOUS指定のREAD文が指定されたとき,Btrieve(Pervasive.SQL)による索引編成ファイルの逆順読みができます。
(e) キー属性
RECORD KEY句,またはALTERNATE RECORD KEY句のデータ名の項類が英数字項目以外のとき,次の規則に従って主レコードキーおよび副レコードキーの一致,不一致を判定します。
主レコードキーまたは 副レコードキーの項類 |
キーの判定属性 |
|
---|---|---|
-IsamExtend指定 (Zoneサブオプションなし) |
-IsamExtend,Zone指定 (Zoneサブオプションあり) |
|
固定長集団項目 |
文字 |
文字 |
外部10進項目 |
文字 |
外部10進項目※ |
内部10進項目 |
文字 |
文字 |
外部浮動小数点数字項目 |
文字 |
文字 |
数字編集項目 |
文字 |
文字 |
英字編集項目 |
文字 |
文字 |
英字項目 |
文字 |
文字 |
日本語項目 |
文字 |
文字 |
2進項目(2バイト) |
2バイト固定小数点 |
2バイト固定小数点 |
2進項目(4バイト) |
4バイト固定小数点 |
4バイト固定小数点 |
内部浮動小数点数字項目(4バイト) |
単精度浮動小数点 |
単精度浮動小数点 |
内部浮動小数点数字項目(8バイト) |
倍精度浮動小数点 |
倍精度浮動小数点 |
(2) 物理的制限事項
Btrieve(Pervasive.SQL)による索引編成ファイルの物理的制限事項を,次に示します。なお,詳細については,Pervasive.SQL,Btrieveのマニュアルを参照してください。
(3) 機能的制限事項
Btrieve(Pervasive.SQL)による索引編成ファイルの機能的制限事項を,次に示します。
(a) DATA FORMAT句
Btrieve(Pervasive.SQL)による索引編成ファイルでは,UNIXのデータにアクセスできません。このため,DATA FORMAT句を使用したプログラムに-IsamExtendオプションまたは-IsamExtend,Zoneオプションを指定してコンパイルすると,エラーになります。
(b) セキュリティ
ファイル共用は使用できますが,Btrieve(Pervasive.SQL)のオーナ ネームは使用できません。したがって,ファイルにアクセスする場合は,オーナと同等の権限が必要となります。
(c) OUTPUTモードの追加書き
OUTPUTモード指定の場合,ファイルの追加書きはしません。常にファイルを再作成します。
(d) 重複キーの検出
副レコードキーの重複を許すようにした場合,キーが重複していても検出できません。
(4) ISAMによる索引編成ファイルとの相違点
Btrieve(Pervasive.SQL)による索引編成ファイルとISAMによる索引編成ファイルとの相違点を,次に示します。
-
参照キーを更新した場合,後行のREAD文NEXT指定またはREAD文PREVIOUS指定は,更新されたキーで次のレコードを入力します。
-
順アクセスで入力したレコードを削除した場合,ファイル位置指示子が不定となり,後行のREAD文NEXT指定またはREAD文PREVIOUS指定が実行時エラーとなります。
-
ほかで使用中のファイルをOUTPUT指定のOPEN文で実行した場合,ファイル排他が検知できません。この場合,オープンエラーとなります。
-
ほかで施錠しているレコードに対して,施錠指定のないREAD文を実行した場合,施錠エラーが検知できません。
-
START文のKEY指定には,レコードキーとして指定したデータ名を指定してください。レコードキーとして指定していないデータ名を指定した場合,コンパイルエラーとなります。
-
START文で位置づけられたレコードを削除したり,レコードの参照キーを変更した場合,あとに続くREAD文NEXT指定やREAD文PREVIOUS指定の動作は保証しません。