アクティブなデータベースへのレポート指定の送信を開始します。この呼出しの後、EssSendStringを続けて呼び出してレポート指定を送信し、最後にEssEndReportを呼び出す必要があります。レポート・データを出力することも、確認のみ行って、エラーがあれば戻させることもできます。また、この呼出しでは、オプションでデータベース内の対応するデータ・ブロックをロックすることもできます(更新用のロック)。
構文
ESS_FUNC_M EssBeginReport (
hCtx, Output, Lock
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル。 |
Output |
ESS_BOOL_T |
データの出力を制御します。TRUEの場合は、指定したレポートに従ってサーバーから出力されます。FALSEの場合は、データは出力されません。 |
Lock |
ESS_BOOL_T |
ブロックのロックを制御します。TRUEの場合は、レポート指定でアクセスされるすべてのブロックが更新用にロックされます。FALSEの場合は、ブロックのロックは行われません。 |
備考
この関数に続いて、EssSendStringを少なくとも1回呼び出し、その後、EssEndReportを呼び出す必要があります。
.
この関数によってデータが出力される場合(OutputフラグがTRUE)、EssGetStringを呼び出して戻されたデータを読み取ることができます。
この関数によってブロックがロックされる場合(LockフラグがTRUE)、呼出し元はロックされたブロックのロック解除を行う必要があります(たとえば、UnlockフラグをTRUEに設定してEssUpdateを呼び出します)。
OutputおよびLockの両方のフラグがFALSEに設定されている場合、データベースはレポート指定の構文確認のみを行います。
Unicode対応Essbaseアプリケーションとの通信にCのメインAPIを使用するUnicodeクライアントは、この関数の呼出し直後に、テキスト・ストリーム内のUTF-8でエンコードされたバイト・オーダー・マーク(BOM)を送信する必要があります。例としては、バイト・オーダー・エンコーディングの指定を参照してください。
戻り値
なし。
アクセス
この関数を使用するには、アクティブなデータベース内の1つ以上のメンバーに対して、呼出し元が読取り権限(ESS_PRIV_READ)を持っている必要があります。
例
ESS_FUNC_M
ESS_Report (ESS_HCTX_T hCtx,
ESS_HINST_T hInst
)
{
ESS_FUNC_M sts = ESS_STS_NOERR;
ESS_STR_T rString = NULL;
sts = EssBeginReport (hCtx,ESS_TRUE,ESS_FALSE);
if (!sts)
sts = EssSendString (hCtx, "<Desc Year !");
if (!sts)
sts = EssEndReport (hCtx);
/**************
* Get report *
**************/
if (!sts)
sts = EssGetString (hCtx, &rString);
while ((!sts) && (rString != NULL))
{
printf ("%s", rString);
EssFree (hInst, rString);
sts = EssGetString (hCtx, &rString);
}
printf ("\r\n");
return(sts);
}
関連トピック