指定したインデックスおよびデータ・ファイルに関する情報を取得します。
構文
パラメータ | データ型 | 説明 |
---|---|---|
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 ); }
関連トピック