JetGetColumnInfo 関数
適用対象: Windows |Windows Server
JetGetColumnInfo 関数
JetGetColumnInfo 関数は、列に関する情報を取得します。
JET_ERR JET_API JetGetColumnInfo(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in const tchar* szTableName,
__in const tchar* szColumnName,
__out void* pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel
);
パラメーター
sesid
API 呼び出しに使用するデータベース セッション コンテキスト。
dbid
情報の取得元の列を含むテーブルを、 szTableName と共に識別します。
szTableName
情報の取得元となる列を含むテーブルを dbid と共に識別します。
szColumnName
情報がフェッチされる列の名前。
pvResult
情報を受け取るバッファーへのポインター。 バッファーの種類は InfoLevel に依存します。 バッファーを適切に配置するように呼び出し元を構成する必要があります。
cbMax
pvResult で渡されるバッファーのサイズ (バイト単位)。
InfoLevel
szColumnName で指定された列に対して取得する情報の種類。 pvResult に格納されるデータの形式は、このパラメーターによって異なります。 一時テーブルのスキーマについては、「 JET_COLUMNLIST」を参照してください。
これらの InfoLevel は、 次の要素によって区別されます。
JET_ColInfoListSortColumnidは、一時テーブルを columnid で並べ替えます。
JET_ColInfoListCompactすると、出力が圧縮されます。 コンパクト出力の詳細については、「 JET_COLUMNLIST」を参照してください。
このパラメーターでは、次のオプションを使用できます。
値 |
説明 |
---|---|
JET_ColInfo |
JET_ColInfoとJET_ColInfoByColidはどちらも同じ情報を取得します。 pvResult は JET_COLUMNDEFとして解釈され、 JET_COLUMNDEF 構造体のフィールドは適切に入力されます。 |
JET_ColInfoBase |
pvResult は 、JET_COLUMNBASE 構造体として解釈されます。 これは、 JET_COLUMNDEF 構造体に似ています。 この関数が成功すると、構造体に適切な値が設定されます。 この関数が失敗した場合、構造体には未定義のデータが含まれます。 |
JET_ColInfoByColid |
JET_ColInfoと同様に、 pvResult は JET_COLUMNDEFとして解釈されます。ただし、この InfoLevel は、要求された列 (szColumName) が文字列列名ではなく、 JET_COLUMNIDへのポインターであることを示します。 |
JET_ColInfoList |
pvResult は、 JET_COLUMNLIST 構造体として解釈されます。 この関数が成功すると、構造体に適切な値が設定されます。 一時テーブルが開き、JET_COLUMNLIST構造体の tableid メンバーによって識別されます。 テーブルは JetCloseTable で閉じる必要があります。 この関数が失敗した場合、構造体には未定義のデータが含まれます。 |
JET_ColInfoListCompact |
JET_ColInfoListと同じです。 |
JET_ColInfoListSortColumnid |
JET_ColInfoListと同じです。ただし、結果のテーブルは列名ではなく columnid で並べ替えられます。 |
JET_ColInfoSysTabCursor |
JET_ColInfoSysTabCursorは非推奨となり、使用するとJET_errFeatureNotAvailableが返されます。 |
JET_ColInfoBaseByColId |
JET_ColInfoBaseと同様に、 pvResult は JET_COLUMNBASEとして解釈されますが、この InfoLevel は、要求された列 (szColumName) が文字列列名ではなく、 JET_COLUMNIDへのポインターであることを示します。 Windows Vista: この値は、Windows Vista で導入されています。 |
JET_ColInfoGrbitNonDerivedColumnsOnly |
非派生列のみを返します (テーブルがテンプレートから派生している場合)。 この値は、基本 InfoLevel がJET_ColInfoListされている場合に、 InfoLevel に論理的または論理的に変換できます。 Windows Vista: この値には、Windows Vista が導入されています。 |
JET_ColInfoGrbitMinimalInfo |
各列の列名と columnid のみを返します。 この値は、基本 InfoLevel がJET_ColInfoListされている場合に、 InfoLevel に論理的または論理的に変換できます。 Windows Vista: この値は、Windows Vista で導入されています。 |
JET_ColInfoGrbitSortByColumnid |
返された列リストを columnid で並べ替えます (既定では、リストを列名で並べ替えます)。 この値は、基本 InfoLevel がJET_ColInfoListされている場合に、 InfoLevel に論理的または論理的に変換できます。 Windows Vista: この値は、Windows Vista で導入されています。 |
戻り値
この関数は、次のいずれかのリターン コードを使用して 、JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張可能ストレージ エンジン エラー 」および「 エラー処理パラメーター」を参照してください。
リターン コード |
説明 |
---|---|
JET_errSuccess |
操作は正常に完了しました。 |
JET_errColumnNotFound |
szColumnName という名前の列がテーブルに見つかりませんでした。 |
JET_errFeatureNotAvailable |
正しくない InfoLevel が指定されました。 |
JET_errInvalidName |
このエラーは、次の場合に返される可能性があります。
|
JET_errInvalidParameter |
このエラーは、次の場合に返される可能性があります。
|
解説
JetGetTableColumnInfo と JetGetColumnInfo はどちらも列に関する情報を取得します。 これらの違いは、テーブルの識別方法です。
JetGetTableColumnInfo は、 tableid によってテーブルを識別します。
JetGetColumnInfo は、 dbid と szTableName の組み合わせによってテーブルを識別します。
JET_ColInfoList、JET_ColInfoListSortColumnid、またはJET_ColInfoListCompactを使用してデータを取得すると、一時テーブルが開きます。 一時テーブルにはデータが含まれており、 JET_COLUMNLIST 構造体には一時テーブルを走査するのに十分な情報が含まれています。 一時テーブルは JetCloseTable で閉じる必要があります。
要件
要件 | 値 |
---|---|
Client |
Windows Vista、Windows XP、または Windows 2000 Professional が必要です。 |
[サーバー] |
Windows Server 2008、Windows Server 2003、または Windows 2000 Server が必要です。 |
Header |
Esent.h で宣言されています。 |
Library |
ESENT.lib を使用します。 |
[DLL] |
ESENT.dllが必要です。 |
Unicode |
JetGetColumnInfoW (Unicode) および JetGetColumnInfoA (ANSI) として実装されます。 |
参照
エラー処理パラメーター
記憶域エンジンの拡張可能なエラー
JET_COLUMNBASE
JET_COLUMNDEF
JET_COLUMNID
JET_COLUMNLIST
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetGetTableColumnInfo