データベースのデータを更新した後は、連結した合計が正しくなるように再計算する必要があります。データベースを再計算するためには、デフォルト計算を実行、または特定の計算スクリプトを送信できます。また、計算スクリプトをデフォルトの計算スクリプトとして設定できます。計算スクリプトは、単一文字列、連続文字列またはファイルとして送信できます。計算スクリプト・ファイルは、クライアント・マシンまたはEssbaseサーバーのいずれにあってもかまいません。
単一文字列として計算スクリプトを送信するためには、EssCalc()を呼び出し、引数として文字列全体を渡します(MS Windowsでは、文字列の長さが32KBを超えないように注意してください)。計算スクリプトが実行されるように、EssCalc()への呼出しでは、CalculateフラグをTRUEに設定します。その後、一定の間隔で計算の進行状況を確認する必要があります。
連続文字列として計算スクリプトを送信するためには、最初にEssBeginCalc()を呼び出し、その後、計算スクリプトの文字列をすべて送信するためにEssSendString()を繰り返し呼び出します(MS Windowsでは、各文字列の長さが32KBを超えないように注意してください)。最後に、EssEndCalc()を呼び出して、スクリプトを終了します。データベースが再計算されるように、EssBeginCalc()への呼出しではCalculateフラグをTRUEに設定します。その後、一定の間隔で計算の進行状況を確認する必要があります(「計算の進行状況のチェック」を参照)。
ファイルとして計算スクリプトを送信するためには、EssCalcFile()関数を使用して、計算スクリプトのファイル名を渡します。データベースが再計算されるように、EssCalcFile()への呼出しにおいてCalculateフラグをTRUEに設定します。その後、一定の間隔で計算の進行状況を確認する必要があります(「計算の進行状況のチェック」を参照)。
現在のデフォルトの計算スクリプトを使用して、データベースを再計算するためには、EssDefaultCalc()関数を使用します。データベースにデフォルトの計算スクリプトを設定するためには、EssSetDefaultCalc()を使用して、単一文字列として計算スクリプトを渡します。ファイルからデフォルトの計算スクリプトを設定するためには、EssSetDefaultCalcFile()関数を使用して、計算スクリプト・ファイル名を渡します。EssGetProcessState()を使用して、計算がいつ終了したか判断します(「計算の進行状況の確認」を参照)。
データベースの計算が始まったら、一定の間隔(推奨は5秒)で、EssGetProcessState()関数を呼び出すことにより、計算の進行状況を確認します。この関数は、計算状態を示す構造体を戻します。計算が終了したことまたはエラーが発生したことが示されるまで、EssGetProcessState()を呼び出します。また、EssCancelProcess()関数を使用して、進行中の計算を取り消せます。
注意 | 計算の進行中は、計算操作が正常に終了または取り消されるまで、同じコンテキスト・ハンドルを使用して、EssGetProcessState()またはEssCancelProcess()以外のAPI関数を呼び出そうとしないでください。計算が終了したことをEssGetProcessState()が示した後、プログラムは、そのコンテキスト・ハンドルで他のAPI操作の実行を続けることができます。 |