VERIFY DATA FILE

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 11.3 (Modified)


VERIFY DATA FILE (structurePath; dataPath; objects; options; method{; tablesArray; fieldsArray})

引数説明
structurePathテキスト検証する4Dストラクチャファイルのパス名
dataPathテキスト検証する4Dデータファイルのパス名
objects数値検証するオブジェクト
options数値検証オプション
methodテキスト4Dコールバックメソッド名
tablesArray数値配列検証するテーブル番号
fieldsArray2D数値配列検証するインデックス番号

説明

VERIFY DATA FILE コマンドは、structurePathdataPathで指定したデータファイル中にあるオブジェクトの、構造的な検証を行います。

Note: データ検証に関する詳細は、Design Referenceマニュアルを参照してください。

structurePathは、検証するデータファイルに対応するストラクチャファイル (コンパイル済みまたはインタプリタ) を指定します。開かれたストラクチャや他のストラクチャを指定できます。OSに対応した完全パス名を指定しなければなりません。空の文字列を渡すと標準のファイルを開くダイアログボックスが表示され、使用するストラクチャファイルをユーザが指定できます。

dataPath は4Dデータファイル (.4DD) を指定します。データファイルはstructurePath引数で指定されたストラクチャファイルに対応していなければなりません。カレントのストラクチャファイルを指定することができますが、データファイルは開かれていてはいけないことに注意してください。開かれたデータファイルを検証するためには、VERIFY CURRENT DATA FILEコマンドを使用します。VERIFY DATA FILEでカレントのデータファイルを検証しようとすると、エラーが生成されます。

指定されたデータファイルは読み込みのみで開かれます。他のアプリケーションが書き込み可能でこのファイルにアクセスしないようにしなければなりません。そうでなければ検証結果は正しくないものになります。

dataPath引数に空の文字列、ファイル名、またはOSのシンタックスに対応した完全パス名を渡すことができます。空の文字列を渡すと標準のファイルを開くダイアログボックスが表示され、検証するファイルをユーザが選択できます。カレントのデータファイルを選択できないことに注意してください。データファイル名のみを渡した場合、4Dは指定されたストラクチャファイルと同階層にあるデータファイルを探します。

objects 引数は検証するオブジェクトを指定するために使用します。2つのタイプのオブジェクト、レコードとインデックスを検証できます。"Data file maintenance"テーマの以下の定数を使用できます:

- Verify Records (4)

- Verify Indexes (8)

- Verify All (16)

レコードとインデックス両方を検証するにはVerify Records+Verify Indexes、または0を渡します。Verify Allオプションを指定すると内部的な検証が完全に行われます。この検証はログの作成と互換性があります。

options 引数は検証オプションを設定するために使用します。現時点では、"Data file maintenance"テーマの1つのオプション、Do not create log file (16384)のみを指定できます。

通常、VERIFY DATA FILEコマンドはXMLフォーマットのログファイルを作成します (このコマンドの最後の説明を参照してください)。このオプションを指定して、ログの作成をキャンセルできます。ログファイルを作成するには、optionsに0を渡します。

method 引数には、検証中定期的に呼び出されるコールバックメソッドを設定するために使用します。空の文字列を渡すと、メソッドはコールされません。渡されたメソッドが存在しない場合、検証は行われず、エラーが生成され、OKシステム変数に0が設定されます。コールバックメソッドは、呼び出されるときに、呼び出し元のイベントタイプにより最大5つの引数が渡されます。コールバックメソッドではこれらの引数を宣言しなければなりません:

- $1倍長整数メッセージタイプ (表参照)
- $2倍長整数オブジェクトタイプ
- $3テキストメッセージ
- $4倍長整数テーブル番号
- $5倍長整数予約

以下の表は、イベントタイプごとの引数の内容を示しています:

イベント$<1 (<倍長整数)$<2 (<倍長整数)$<3 (<テキスト)$<4 (<倍長整数)$<5 (<倍長整数)
メッセージ10進行状況処理率予約
メッセージ(0-100)
検証終了2オブジェクト OKメッセージテーブルまたは予約
タイプテキストインデックス番号
エラー3オブジェクトエラーメッセーテーブルまたは予約
タイプジテキストインデックス番号
実行終了40終了0予約
警告5オブジェクトエラーメッセーテーブルまたは予約
タイプジテキストインデックス番号

オブジェクトタイプ: オブジェクトが検証されると、終了メッセージ ($1=2)、エラー ($1=3)、警告 ($1=5) が送信されます。$2に返されるオブジェクトタイプは以下のうちのいずれかになります:

・0 = 不明

・4 = レコード

・8 = インデックス

・16 = ストラクチャオブジェクト (データファイルの予備検証)

特別なケース: $1が2、3、または5のとき、$4が0ならば、それはメッセージがテーブルやインデックスについてではなく、データファイル全体に関するものであることを示します。

コールバックメソッドは$0に倍長整数値を返さなくてはなりません。これは処理の実行をチェックするために使用されます:

- $0 = 0の時、処理は通常通り続行されます。

- $0 = -128の時、処理は停止されますが、エラーは生成されません。

- $0 = 他の値の時、処理が停止され、$0に返された値をエラー番号としてエラーを生成します。このエラーはエラーハンドラメソッドでとらえることができます。

2つのオプションの配列をこのコマンドで利用できます:

tablesArray 配列にはテーブル番号が含まれ、レコードを検証するテーブルを指定するために使用します。この引数は検証するテーブルを制限するために使用します。この引数を渡さないか配列が空の場合で、objects引数にVerify Recordsが指定されている場合、すべてのテーブルが検証されます。

fieldsArray 配列には検証対象とするインデックス付きフィールドの番号を渡します。

この引数が渡されないか配列が空の場合で、objects引数にVerify Indexesが指定されている場合、すべてのインデックスが検証されます。コマンドはインデックスの無いフィールドを無視します。フィールドに複数のインデックスが含まれる場合、すべてが検証されます。フィールドが複合インデックスの一部である場合、インデックス全体が検証されます。

fieldsArrayには二次元配列を渡します。配列の内容は以下の通りです:

- 要素 {0} にはテーブル番号が含まれます。

- 他の要素 {1...x} にはフィールド番号が含まれます。

デフォルトで、VERIFY DATA FILEコマンドは、(options引数にDo not create log fileオプションが指定されていなければ) XMLフォーマットのログファイルを作成します。 ログファイルの名前はデータファイル名に基づきつけられ、データベースの"Logs"に作成されます。たとえば、"data.4dd"データファイルを検証すると、"data_verify_log.xml"が作成されます。

例題

1. データとインデックスの検証:

   VERIFY DATA FILE($StructName;$DataName;Verify Indexes+Verify Records;Do not create log file;"")

2. 完全な検証を行い、ログを作成する:

   VERIFY DATA FILE($StructName;$DataName;Verify All No Callback;0;"")

3. レコードのみの検証:

   VERIFY DATA FILE($StructName;$DataName;Verify Records;0;"")

4. テーブル3と7のみを検証:

   ARRAY LONGINT($arrTableNums;2)
   ARRAY LONGINT($arrIndex;0) `使用しないが必須
   $arrTableNums{1}:=3
   $arrTableNums{2}:=7
   VERIFY DATA FILE($StructName;$DataName;Verify Records;0;"FollowScan";$arrTableNums;$arrIndex)

5. 特定のインデックスを検証 ([table4]field1、[table5]field2とfield3):

   ARRAY LONGINT($arrTableNums;0) `使用しないが必須
   ARRAY LONGINT($arrIndex;2;0) `2行 (列は後で追加)
   $arrIndex{1}{0}:=4 ` 要素0にーブル番号
   APPEND TO ARRAY($arrIndex{1};1) `検証する1番目のフィールド番号
   $arrIndex{2}{0}:=5 ` 要素0にーブル番号
   APPEND TO ARRAY($arrIndex{2};2) ` 検証する1番目のフィールド番号
   APPEND TO ARRAY($arrIndex{2};3) ` 検証する2番目のフィールド番号
   VERIFY DATA FILE($StructName;$DataName;Verify Indexes;0;"FollowScan";$arrTableNums;$arrIndex)

参照

VERIFY CURRENT DATA FILE.

システム変数またはセット

コールバックメソッドが存在しなければ、エラーが生成され、OKシステム変数に0が設定されます。


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次