既存のアウトラインを開いて読み取ります。アウトラインに対する操作を行う前に、この関数(またはEssOtlNewOutline())を呼び出す必要があります。
構文
ESS_FUNC_M
EssOtlOpenOutline
(
hCtx, pObject, fLock, fKeepTrans, phOutline
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hCtx |
ESS_HCTX_T |
Essbaseコンテキスト・ハンドル。 |
pObject |
ESS_POBJDEF_T |
アウトライン・オブジェクトを開くように定義している、オブジェクト構造体へのポインタ。 |
fLock |
ESS_BOOL_T |
開いたときにアウトラインをロックするかどうかを特定するフラグ。サーバー・アウトラインの場合にのみ有効です。 |
fKeepTrans |
ESS_BOOL_T |
トランザクションを保持するかどうかを特定するフラグ。 変更するために既存のアウトラインを開き、データベースを再構成するがデータを保持する場合、このフラグをESS_TRUEに設定してください。ESS_TRUEに設定すると、アウトラインに行われたアクティビティのログが保存されます。 空のアウトラインから始める場合や、再構築の際にデータを保存しない場合には、このフィールドをESS_FALSEに設定することをお薦めします。ESS_FALSEに設定すると、ログが保持されないため、時間やメモリーを節約できます。 |
phOutline |
ESS_PHOUTLINE_T |
ESS_HOUTLINE_T変数へのポインタ。このハンドルはAPIによって設定され、後続のアウトラインAPI関数に渡される必要があります。 |
備考
Unicodeモードのアウトラインの場合、EssOtlOpenOutlineExを使用します。
アウトライン・ファイルがサーバー上に存在する場合、この呼出しは、クライアントのアクセスのためにそのファイルをローカルにコピーします。
集約ストレージ・データベースのアウトラインについては、EssOtlCloseOutlineが呼び出されるまで、EssOtlOpenOutlineはアウトラインを開いておきます。集約ストレージ・アウトラインは、(完全にメモリーに読み込まれるかわりに)メモリーにページ・インされるので、アウトラインは開いておきます。その結果、EssOtlCloseOutlineが呼び出されるまで、一時ファイルはコンピュータのTempフォルダに残ります。
戻り値
正常終了の場合は0が戻されます。それ以外の場合は、次のいずれかの値が戻されます:
OTLAPI_BAD_OBJTYPE
OTLAPI_ERR_FILEOPEN
OTLAPI_ERR_FILEIO
アクセス
この関数を使用するには、アウトライン・オブジェクトを含む指定されたアプリケーションやデータベースへの、適切なレベルのアクセス権が必要です。アウトライン・オブジェクトをロックするには(ロック・フラグはESS_TRUE)、アウトラインを含む指定されたアプリケーションまたはデータベースに対して、アプリケーション・デザイナまたはデータベース・デザイナの権限(ESS_PRIV_APPDESIGNまたはESS_PRIV_DBDESIGN)を持っている必要があります。
例
#include <essapi.h>
#include <essotl.h>
ESS_STS_T sts = 0;
ESS_OBJDEF_T Object;
ESS_HOUTLINE_T hOutline;
ESS_APPNAME_T szAppName;
ESS_DBNAME_T szDbName;
ESS_OBJNAME_T szFileName;
memset(&Object, '\0', sizeof(Object));
Object.hCtx = hCtx;
Object.ObjType = ESS_OBJTYPE_OUTLINE;
strcpy(szAppName, "Sample");
strcpy(szDbName, "Basic");
strcpy(szFileName, "Basic");
Object.AppName = szAppName;
Object.DbName = szDbName;
Object.FileName = szFileName;
sts = EssOtlOpenOutline(hCtx, &Object, ESS_TRUE,
ESS_TRUE, &hOutline);
関連トピック