ある特定のアプリケーションとデータベースに接続しているすべてのユーザーを、それらのユーザーが現在ロックしているデータ・ブロックのカウントとともにリストします。EssListLocksに似ていますが、ユーザー・ディレクトリにホストされているユーザーが含まれます。
構文
ESS_FUNC_M EssListLocksEx ( hCtx , AppName , DbName , pCount , ppLockList );
パラメータ | データ型 | 説明 |
---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル(入力)。 |
AppName |
ESS_STR_T |
アプリケーション名(入力)。 |
DbName |
ESS_STR_T |
データベース名(入力)。 |
pCount |
ESS_PUSHORT_T |
ユーザー・カウントを受け取る変数のアドレス(出力)。 |
ppLockList |
ESS_PPLOCKINFOEX_T |
割り当てられたユーザー・ロック情報構造体の配列を受け取るポインタのアドレス(出力)。情報構造体には、ユーザー・ディレクトリおよび一意のID属性を含められます。 |
備考
この関数はスナップショットです。この関数が呼び出されたときにサーバーに接続していたユーザーのみがリストされます。
ppLockListに対して割り当てられたメモリーは、EssFreeを使用して解放する必要があります。
戻り値
正常終了の場合は、接続しているユーザー数のカウントがpCountに、ユーザー・ロック構造体のリストがppLockListに戻されます。
アクセス
この関数を使用するには、呼出し元が、指定したデータベースに対してデータベース・デザイン権限(ESS_PRIV_DBDESIGN)を持っている必要があります。
例
void DisplayLock(ESS_LOCKINFOEX_T lockinfo) { ESS_STS_T sts = ESS_STS_NOERR; printf("\tUser Name: %s\n", lockinfo.UserName); printf("\tProvider Name: %s\n", lockinfo.ProviderName); printf("\tConnection Parameter: %s\n", lockinfo.connparam); printf("\tNumber of Locks: %d\n", lockinfo.nLocks); printf("\tTime: %ld\n", lockinfo.Time); printf("\tLoginId: %ld\n", lockinfo.LoginId); printf("\n"); } ESS_FUNC_M ESS_ListLocksEx (ESS_HCTX_T hCtx, ESS_HINST_T hInst) { ESS_STS_T sts; ESS_USHORT_T count, i; ESS_PLOCKINFOEX_T plockinfo = NULL; ESS_ACCESS_T Access; sts = EssSetActive(hCtx, AppName, DbName, &Access); printf("EssSetActive sts: %ld\n",sts); sts = EssListLocksEx (hCtx, AppName, DbName, &count, &plockinfo); printf("EssListLocksEx sts: %ld\n", sts); if(!sts) { printf("\nNumber of lock info returned: %d\n", count); for(i = 0; i < count; i++) { DisplayLock(plockinfo[i]); } } return (sts); }
関連トピック