4D v14.3VERIFY DATA FILE |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
VERIFY DATA FILE
|
VERIFY DATA FILE ( structurePath ; dataPath ; objects ; options ; method {; tablesArray {; fieldsArray}} ) | ||||||||
引数 | 型 | 説明 | ||||||
structurePath | テキスト |
![]() |
検証する4Dストラクチャファイルのパス名 | |||||
dataPath | テキスト |
![]() |
検証する4Dデータファイルのパス名 | |||||
objects | 倍長整数 |
![]() |
検証するオブジェクト | |||||
options | 倍長整数 |
![]() |
検証オプション | |||||
method | テキスト |
![]() |
4Dコールバックメソッド名 | |||||
tablesArray | 倍長整数配列 |
![]() |
検証するテーブル番号 | |||||
fieldsArray | 2D整数配列, 2D倍長整数配列, 2D実数配列 |
![]() |
検証するインデックス番号 | |||||
VERIFY DATA FILEコマンドは、structurePathとdataPathで指定したデータファイル中にあるオブジェクトの、構造的な検証を行います。
注: データ検証に関する詳細は、Design Referenceマニュアルを参照してください。
structurePathは、検証するデータファイルに対応するストラクチャファイル (コンパイル済みまたはインタプリタ) を指定します。開かれたストラクチャや他のストラクチャを指定できます。OSに対応した完全パス名を指定しなければなりません。空の文字列を渡すと標準のファイルを開くダイアログボックスが表示され、使用するストラクチャファイルをユーザが指定できます。
dataPath は4Dデータファイル (.4DD) を指定します。データファイルはstructurePath引数で指定されたストラクチャファイルに対応していなければなりません。カレントストラクチャーファイルを指定することができますが、カレントのデータファイルは指定できない (開かれていてはいけない) ことに注意してください。現在開かれているデータファイルを検証するためにはVERIFY CURRENT DATA FILEコマンドを使用します。VERIFY DATA FILEでカレントのデータファイルを検証しようとすると、エラーが生成されます。
指定されたデータファイルは読み込みのみで開かれます。他のアプリケーションが書き込み可能でこのファイルにアクセスしないようにしなければなりません。そうでなければ検証結果は正しくないものになります。
dataPath引数に空の文字列、ファイル名、またはOSのシンタックスに対応した完全パス名を渡すことができます。空の文字列を渡すと標準のファイルを開くダイアログボックスが表示され、検証するファイルをユーザが選択できます。カレントのデータファイルを選択できないことに注意してください。データファイル名のみを渡した場合、4Dは指定されたストラクチャファイルと同階層にあるデータファイルを探します。
objects 引数は検証するオブジェクトを指定するために使用します。2つのタイプのオブジェクト、レコードとインデックスを検証できます。Data File Maintenanceテーマの以下の定数を使用できます:
定数 | 型 | 値 | コメント |
Verify all | 倍長整数 | 16 | |
Verify indexes | 倍長整数 | 8 | このオプションを使用すると、インデックスの物理的な整合性を検証しますが、データとのリンクは考慮されません。この検証は無効なキーを検知しますが、重複キー (同じレコードを参照する2つのインデックス) を検出することはできません。この検証を行うにはVerify Allオプションを使用しなければなりません。 |
Verify records | 倍長整数 | 4 |
レコードとインデックス両方を検証するにはVerify Records+Verify Indexesを渡します。0を渡しても同じ結果が得られます。Verify Allオプションを指定すると内部的な検証が完全に行われます。この検証はログの作成と互換性があります。
options 引数は検証オプションを設定するために使用します。現時点ではData File Maintenanceテーマの1つのオプションのみを指定できます:
定数 | 型 | 値 | コメント |
Do not create log file | 倍長整数 | 16384 | 通常このコマンドはXMLフォーマットのログファイルを作成します。このオプションを使用すればログファイルは作成されません。 |
通常、VERIFY DATA FILEコマンドはXMLフォーマットのログファイルを作成します (このコマンドの最後の説明を参照してください)。このオプションを指定して、ログの作成をキャンセルできます。ログファイルを作成するには、optionsに0を渡します。
method 引数には、検証中定期的に呼び出されるコールバックメソッドを設定するために使用します。空の文字列を渡すと、メソッドは呼び出されません。渡されたメソッドが存在しない場合、検証は行われず、エラーが生成され、OKシステム変数に0が設定されます。コールバックメソッドが呼び出されるときは、検証されるオブジェクトのタイプおよび呼び出し元のイベントタイプにより最大5つの引数が渡されます。コールバックメソッドではこれらの引数を宣言しなければなりません:
$1 | 倍長整数 | メッセージタイプ (表参照) |
$2 | 倍長整数 | オブジェクトタイプ |
$3 | テキスト | メッセージ |
$4 | 倍長整数 | テーブル番号 |
$5 | 倍長整数 | 予約 |
以下の表は、イベントタイプごとの引数の内容を示しています:
イベント | $1 (Longint) | $2 (Longint) | $3 (Text) | $4 (Longint) | $5 (Longint) |
メッセージ | 1 | 0 | 進行状況 | 処理率 | 予約 |
メッセージ | (0-100%) | ||||
検証終了 (*) | 2 | オブジェクトタイプ (**) | OKメッセージ | テーブルまたはインデックス | 予約 |
テスト | 番号 | ||||
エラー | 3 | オブジェクトタイプ (**) | エラーテキスト- | テーブルまたはインデックス | 予約 |
メッセージ | 番号 | ||||
実行終了 | 4 | 0 | 終了 | 0 | 予約 |
警告 | 5 | オブジェクトタイプ (**) | エラーテキスト | テーブルまたはインデックス | 予約 |
メッセージ | 番号 |
特別なケース: $1が2、3、または5のとき、$4が0ならば、それはメッセージがテーブルやインデックスについてではなく、データファイル全体に関するものであることを示します。
コールバックメソッドは$0に倍長整数値を返さなくてはなりません。これは処理の実行をチェックするために使用されます:
注: 実行終了イベント ($4=1) が生成された後、$0を使用して実行を中断させることはできません。
2つのオプションの配列をこのコマンドで利用できます:
この引数が渡されないか配列が空の場合で、objects引数にVerify Indexesが指定されている場合、すべてのインデックスが検証されます。コマンドはインデックスの無いフィールドを無視します。フィールドに複数のインデックスが含まれる場合、すべてが検証されます。フィールドが複合インデックスの一部である場合、インデックス全体が検証されます。
fieldsArrayには二次元配列を渡します。配列の内容は以下の通りです:
- 要素 {0} にはテーブル番号が含まれます。
- 他の要素 {1...x} にはフィールド番号が含まれます。
デフォルトでVERIFY DATA FILEコマンドは、(options引数にDo not create log fileオプションが指定されていなければ) XMLフォーマットのログファイルを作成します。 ログファイルの名前はデータファイル名に基づきつけられ、データベースの"Logs"に作成されます。たとえば、"data.4dd"データファイルを検証すると、"data_verify_log.xml"が作成されます。
データとインデックスの検証:
VERIFY DATA FILE($StructName;$DataName;Verify indexes+Verify records;Do not create log file;"")
完全な検証を行い、ログを作成する:
VERIFY DATA FILE($StructName;$DataName;Verify All No Callback;0;"")
レコードのみの検証:
VERIFY DATA FILE($StructName;$DataName;Verify records;0;"")
テーブル3と7のレコードのみを検証:
ARRAY LONGINT($arrTableNums;2)
$arrTableNums{1}:=3
$arrTableNums{2}:=7
VERIFY DATA FILE($StructName;$DataName;Verify records;0;"FollowScan";$arrTableNums)
特定のインデックスを検証 ([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)
コールバックメソッドが存在しない場合、エラーが生成され、OKシステム変数には0が設定されます。
プロダクト: 4D
テーマ: 4D環境
番号:
939
変更: 4D v11 SQL Release 3
ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v11 SQL Release 6)
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v12.4)
ランゲージリファレンス ( 4D v13.5)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)