指定したユーザー名または変更日(あるいはその両方)の、アクティブ・データベースのセルにリンクされているすべてのオブジェクトを削除します。
構文
ESS_FUNC_M EssLROPurgeObjects (
hCtx, userName, purgeDate, pulLROCount, pLRODescList
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル。 |
userName |
ESS_STR_T |
ユーザー名を指すポインタ。指定した場合、特定のユーザーが最後に変更したすべてのオブジェクトが削除されます。 |
purgeDate |
ESS_TIME_T |
変更日。指定した場合は、特定日以前に変更されたすべてのオブジェクトのリストが戻されます。日付は1970年1月1日以降に経過した秒数をULONG値で表します。 |
pulLROCount |
ESS_ULONG_T |
削除されたLROカタログ・エントリの数。 |
pLRODescList |
ESS_LRODESC_API_T |
削除されたLROカタログ・エントリのリストへのポインタのアドレス。 |
備考
userNameおよびpurgeDateパラメータの両方を指定した場合、両方の基準に合致するオブジェクトが削除されます。
呼出し元は、pLRODescListに割り当てられたメモリーの解放に責任を持ちます。
戻り値
正常終了の場合は、ESS_STS_NOERRが戻されます。それ以外の場合、エラー・コードが戻されます。
アクセス
この関数を呼び出すには、アクティブなデータベースに対してデザイン権限(ESS_PRIV_DBDESIGN)を持っている必要があります。
例
ESS_FUNC_M ESS_LRO PurgeObjects (ESS_HCTX_T hCtx, ESS_HINST_T hInst)
{
ESS_FUNC_M sts = ESS_STS_NOERR;
ESS_LRODESC_API_T plroDescList=NULL;
ESS_ULONG_T ulLroCount;
ESS_CHAR_T userName[ESS_USERNAMELEN];
ESS_CHAR_T purgeDate[ESS_DATESIZE];
ESS_CHAR_T buf[ESS_DATESIZE];
ESS_TIME_T timestamp;
struct tm *pTmStruct, time_str;
strcpy( userName, "user1");
strcpy( purgeDate, "09/05/1997");
time(×tamp);
pTmStruct = localtime((ESS_PLONG_T)×tamp);
memset(&time_str, 0, sizeof(struct tm));
strncpy (buf, (const char *)&purgeDate[8], 2);
time_str.tm_year = atoi(buf);
strncpy(buf, listDate, 2);
time_str.tm_mon = atoi(buf)-1;
strncpy(buf, (const char *)&purgeDate[3], 2);
time_str.tm_mday = atoi(buf);
time_str.tm_hour = 0;
time_str.tm_min = 0;
time_str.tm_sec = 1;
time_str.tm_isdst = -1;
if ((time_str.tm_mon != pTmStruct->tm_mon) ||
(time_str.tm_year != pTmStruct->tm_year) ||
(time_str.tm_mday != pTmStruct->tm_mday))
{
time_str.tm_mday++;
timestamp = mktime(&time_str);
}
sts = EssLROPurgeObjects(hCtx, userName, timestamp, &ulLroCount, &plroDescList);
if(sts)
{
printf("Could not purge linked objects. \n");
}
if (plroDescList)
EssFree(hInst, plroDescList);
return sts;
}
関連トピック