データベースの整合性を検証します。
構文
EsbValidateDB
(
hCtx, DbName, FileName
)
ByVal
hCtx
As Long
ByVal
DbName
As String
ByVal
FileName
As String
| パラメータ | 説明 |
|---|---|
hCtx |
APIコンテキスト・ハンドル。 |
DbName |
データベース名。必須で、NULLは指定できません。 |
FileName |
エラー・ログ・ファイル。サーバー上のapp\dbに保存されます。必須。 |
備考
この関数は、検証チェックを実行してデータベースの整合性を検証します。
このコマンドによって現在のデータベースが検証されます。EsbValidateDB()コマンドの発行前に、データベースを選択する必要があります。
EsbValidateDB()は、各ブロックのデータの整合性を確認します。最上位から最下位まで読み取り、検証プロセスでデータベース全体を検証し、ブロック、セクション、ブロック・タイプ、ブロック長および浮動小数点数の有効性を確認します。
このコマンドによってブロックと不正ブロックに関する情報がログ・ファイルに書き込まれます。
このコマンドによって整合性エラーが検出されると、検証プロセス・エラー・メッセージがテキスト・フォーマットのログ・ファイルに書き込まれます。ファイルのデフォルト場所は、たとえばESSBASE\APP\DB\VALIDATE.LSTのようなapplication\databaseディレクトリです
この呼出しの前に、EsbSetActive()を呼び出してください。
この関数は非同期であるため、検証プロセスが終了するまでEsbGetProcessState()を呼び出し続ける必要があります。
インデックスには各データ・ブロックのインデックスが含まれています。すべての読取り操作に関して、このコマンドは自動的にインデックス・ページ内のインデックス・キーをそれに対応するデータ・ブロックのインデックス・キーと比較し、ブロックのその他のヘッダー情報を確認します。不一致がある場合、EsbValidateDB()はエラー・メッセージを表示し、データベース全体を確認するまで、処理を続行します。
戻り値
なし。
アクセス
この関数を使用するには、指定したデータベースに対して、呼出し元がデータベース・マネージャ権限(ESB_PRIV_DBDESIGN)を持っている必要があります。
例
Declare Function EsbValidateDB Lib "ESBAPIN" (ByVal hCtx As Long, ByVal DbName As String, ByVal FileName As String) As Long
Sub ESB_ValidateDB()
Dim sts As Long
Dim DbName As String
Dim FileName As String
Dim ProcState As ESB_PROCSTATE_T DbName = "Basic"
FileName =
"D:\Essbase\App\Sample\Basic\Validate.lst" sts = EsbValidateDB(hCtx, DbName, FileName)
If Not sts Then
'*************************************
'Check process state until it is done
'*************************************
sts = EsbGetProcessState(hCtx, ProcState)
Do While sts = 0 And ProcState.State =
ESB_STATE_INPROGRESS
sts = EsbGetProcessState(hCtx, ProcState)
Loop
End If
End Sub
関連トピック