計算スクリプトの送信を開始し、オプションでアクティブ・データベースに対して計算スクリプトを実行します。
構文
ESS_FUNC_M EssBeginCalc (
hCtx, Calculate
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル。 |
Calculate |
ESS_BOOL_T |
計算スクリプトの計算を制御します。TRUEの場合は、計算スクリプトが実行されます。 |
備考
この関数を呼び出した後は、EssSendStringを呼び出して計算スクリプトを送信し、最後にEssEndCalcを呼び出す必要があります。
計算スクリプトの長さは、合計で64KB未満である必要があります。
計算を開始することも、または計算スクリプトの確認のみを行いエラーを戻すこともできます。
計算スクリプトの送信に成功し、計算が開始すると、この呼出しから戻された後も、サーバー上で非同期プロセスとして続行されます。EssEndCalcの呼出し後、呼出し元はESS_STATE_DONEが戻されるまでEssGetProcessStateを呼び出して、プロセスが完了したことを定期的に確認する必要があります。
CalculateフラグがFALSEに設定されている場合、データベースは計算スクリプトの構文チェックのみを行います。
Unicode対応Essbaseアプリケーションとの通信にCのメインAPIを使用するUnicodeクライアントは、この関数の呼出し直後に、テキスト・ストリーム内のUTF-8でエンコードされたバイト・オーダー・マーク(BOM)を送信する必要があります。例としては、バイト・オーダー・エンコーディングの指定を参照してください。
戻り値
なし。
アクセス
この関数を使用するには、呼出し元はアクティブなデータベースに対して計算権限(ESS_PRIV_CALC)を持っている必要があります。
例
ESS_FUNC_M
ESS_Calc (ESS_HCTX_T hCtx)
{
ESS_FUNC_M sts = ESS_STS_NOERR;
ESS_STR_T Script;
ESS_PROCSTATE_T pState;
Script = "CALC ALL;";
sts = EssBeginCalc (hCtx,ESS_TRUE);
if (!sts)
sts = EssSendString (hCtx, Script);
if (!sts)
sts = EssEndCalc (hCtx);
if (!sts)
{
sts = EssGetProcessState (hCtx, &pState);
while(!sts && (pState.State !=
ESS_STATE_DONE))
sts = EssGetProcessState (hCtx, &pState);
}
return(sts);
}
関連トピック