指定したルール・ファイルの構文を確認します。
構文
ESS_FUNC_M EssVerifyRulesFile (
hCtx, ruleFileName, pNmColumns, ppColumnErrors
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル。 |
ruleFileName |
ESS_STR_T |
確認するルール・ファイル名。 |
pNmColumns |
ESS_PULONG_T |
ルール・ファイルの列の数へのポインタ。 |
ppColumnErrors |
ESS_ULONG_T |
見つかったエラーの配列へのポインタ。 |
備考
この関数を実行するには、特定のデータベースがアクティブになっている必要があります。つまり、EssSetActive()を実行しておく必要があります。
この関数は、ルール・ファイルをサーバーに配置した後で実行します。
ルール・ファイルの各列の配列ppColumnErrorsに1つの値があります。配列のn番目の値は、ルール・ファイルのn番目の列にあるエラーに対応します。各エラー値は、0または次のエラー・コードを論理ORで組み合せることができます。
|
エラー・コード |
意味 |
|---|---|
|
DAT_VERIFY_INVALIDMBR |
フィールド名に不明なメンバーがあります(またはメンバーが存在しません)。 |
|
DAT_VERIFY_INVALIDHDR |
ヘッダーに不明なメンバーがあります。 |
|
DAT_VERIFY_SAMENAME |
このフィールドには、別のフィールドと同じ名前が付いています。 |
|
DAT_VERIFY_DIMUSED |
別のフィールドまたはヘッダーには、次元名が使用されます。 |
|
DAT_VERIFY_MBRUSED |
このフィールドで組合せの一部として使用されているメンバー名は、フィールド名で単一のメンバー名として使用されています。 |
|
DAT_VERIFY_DIMINCROSSDIM |
次元名が、フィールド名で次元間の参照として使用されています。 |
|
DAT_VERIFY_DATAFIELD |
データ・フィールド属性を持つことができるフィールドは1つのみです。 |
|
DAT_VERIFY_SIGNFLIPDIM |
符号反転確認に使用される次元が、関連付けられたアウトラインにありません。 |
|
DAT_VERIFY_DUPINHEADER |
このフィールド名は、ヘッダー定義でも定義されています。 |
|
DAT_VERIFY_DATEANDDATA |
フィールドは、データ・フィールドまたは日付フィールドとして指定できますが、両方に指定できません。 |
|
DAT_VERIFY_DATEFIELDNAME |
日付フィールドのフィールド名は日付次元の名前である必要があります。 |
|
DAT_VERIFY_DATEFORMAT |
この日付列には未承認の日付フォーマットがあります。 |
戻り値
正常終了の場合、ルール・ファイル内の列数がpNmColumnsに、見つかったエラーの配列がppColumnErrorsに戻されます。
アクセス
この関数を使用するのに、特別な権限は必要ありません。
例
{
ESS_STS_T sts = ESS_STS_NOERR;
ESS_ULONG_T numColumns = 0, i;
ESS_PULONG_T pColumnErrors = NULL;
sts = EssVerifyRulesFile(hCtx, "rule_file", &numColumns, &pColumnErrors);
if(!sts)
{
if(numColumns && pColumnErrors)
{
printf("NumColumns: %d\n", numColumns);
for(i=0; i<numColumns; i++)
{
printf("Column[%d]:\n", i+1);
if( pColumnErrors[i] == 0 )
printf(" No error\n");
else
{
if( pColumnErrors[i] & DAT_VERIFY_INVALIDMBR )
printf(" There is an unknown member (or no member) in the field name.\n");
if( pColumnErrors[i] & DAT_VERIFY_INVALIDHDR )
printf(" There is an unknown member in the header.\n");
if( pColumnErrors[i] & DAT_VERIFY_SAMENAME )
printf(" This field has the same field name as another field.\n");
if( pColumnErrors[i] & DAT_VERIFY_DIMUSED )
printf(" The dimension name is used in another field name or in the header.\n");
if( pColumnErrors[i] & DAT_VERIFY_MBRUSED )
printf(" A member name used as part of a combination in this field is used as a single
member name in another field.\n");
if( pColumnErrors[i] & DAT_VERIFY_DIMINCROSSDIM )
printf(" A dimension name is used in a cross-dimensional reference in the field name.\n");
if( pColumnErrors[i] & DAT_VERIFY_DATAFIELD )
printf(" Only one field can have the Data Field attribute.\n");
if( pColumnErrors[i] & DAT_VERIFY_SIGNFLIPDIM )
printf(" The dimension used for Sign Flip checking is not in the associated outline.\n");
if( pColumnErrors[i] & DAT_VERIFY_DUPINHEADER )
printf(" This field name is also defined in the header definition.\n");
if( pColumnErrors[i] & DAT_VERIFY_DATEANDDATA )
printf(" A field may be designated a Data Field or a Date Field, but not both.\n");
if( pColumnErrors[i] & DAT_VERIFY_DATEFIELDNAME )
printf(" The field name of a date field must be the name of a date dimension.\n");
if( pColumnErrors[i] & DAT_VERIFY_DATEFORMAT )
printf(" There is an unrecognized date format for this date column.\n");
}
}
EssFree(hInst, pColumnErrors);
}
}
}
関連トピック