指定したインデックスおよびデータ・ファイルに関する情報を取得します。
構文
| パラメータ | データ型 | 説明 |
|---|---|---|
hCtx; |
ESS_HCTX_T |
APIコンテキスト・ハンドル。 |
szAppName; |
ESS_STR_T |
アプリケーション名。 |
szDbName; |
ESS_STR_T |
データベース名。 |
usFileType; |
ESS_USHORT_T |
戻される次のファイル・タイプのいずれかになります:
|
pNmbrOfFiles; |
ESS_PUSHORT_T |
戻されるインデックス・ファイルとデータ・ファイルの数へのポインタ。 |
ppDbInfoArray; |
ESS_DBFILEINFO_T |
戻されるデータベース・ファイル情報構造体の配列へのポインタ。 |
戻り値
成功の場合、
この関数は0を戻します
pNmbrOfFilesは、戻されたインデックス・ファイルとデータ・ファイルの数へのポインタを含みます
ppDbInfoArrayは、戻されたデータベース・ファイル情報構造体の配列へのポインタを含みます
例
ESS_STS_T ListDbFiles( ESS_HCTX_T hCtx )
{
ESS_STS_T sts = ESS_STS_NOERR;
ESS_APPNAME_T pszAppName;
ESS_DBNAME_T pszDbName;
ESS_PDBFILEINFO_T aDbFileInfo = NULL;
ESS_PDBFILEINFO_T pDbFileInfo = NULL;
ESS_USHORT_T usFileType = ( ESS_FILETYPE_INDEX | ESS_FILETYPE_DATA );
ESS_USHORT_T usFileCount = 0;
ESS_USHORT_T usFileIx;
/**************************************************************
* Prompt for the type of files to list: index, data or both, *
* and assign the user's file type choice to usFileType *
**************************************************************
* This function uses ESS_FILETYPE_INDEX | ESS_FILETYPE_DATA *
* as the default value *
**************************************************************/
.
.
.
/*************************************************************
* Prompt for application and database names, and assign the *
* user's choices to pszAppName and pszDbName, respectively *
*************************************************************/
.
.
.
/*********************************************************************
* Get an array of persistent database file information from Essbase *
* for the selected file type, application and database *
*********************************************************************/
sts = EssListDbFiles( hCtx, pszAppName, pszDbName, usFileType,
&usFileCount, &aDbFileInfo );
if ( sts )
{
goto exit;
}
/**********************************************
* Format and display the information in the *
* persistent database file information array *
**********************************************/
if ( ( usFileCount ) && ( aDbFileInfo ) )
{
printf( "Application Name: %s\n",
aDbFileInfo[ 0 ].AppName );
printf( "Database Name: %s\n",
aDbFileInfo[ 0 ].DbName );
for ( ( usFileIx = 0, usFileType = 0 );
usFileIx < usFileCount;
usFileIx++ )
{
/******************************************************
* Format and display the information in the current *
* persistent database file information array element *
******************************************************/
pDbFileInfo = &( aDbFileInfo[ usFileIx ] );
printf( "\nFile %lu:\n",
pDbFileInfo->FileSequenceNum );
printf( " File Name: %s\n",
pDbFileInfo->FilePath );
printf( " File Type: " );
if ( pDbFileInfo->FileType == ESS_FILETYPE_INDEX )
{
printf( "INDEX\n" );
}
else
{
printf( "DATA\n" );
}
printf( " File Number: %lu of %lu\n",
pDbFileInfo->FileSequenceNum, pDbFileInfo->FileCount );
printf( " File Size: %lu\n",
pDbFileInfo->FileSize );
printf( " File Opened: %c\n",
( pDbFileInfo->FileOpen ) ? 'Y' : 'N' );
} /* FOR usFileIx */
/************************************************
* Free the memory allocated for the persistent *
* database file information array *
************************************************/
free( aDbFileInfo );
}
else
{
printf( "Application Name: %s\n",
AppName );
printf( "Database Name: %s\n",
DbName );
switch ( usFileType )
{
case ESS_FILETYPE_INDEX:
printf( "\nNo existing INDEX files.\n" );
break;
case ESS_FILETYPE_DATA:
printf( "\nNo existing DATA files.\n" );
break;
case ( ESS_FILETYPE_INDEX | ESS_FILETYPE_DATA ):
printf( "\nNo existing INDEX or DATA files.\n" );
break;
default:
printf( "\nNo existing database files of the selected type.\n" );
break;
} /* SWITCH usFileType */
}
printf( "\n" );
exit:
return ( sts );
}
関連トピック