JET_TABLECREATE3 構造体
適用対象: Windows |Windows Server
JET_TABLECREATE3構造体には、Extensible Storage Engine (ESE) データベースに列とインデックスが設定されたテーブルを作成するために必要な情報が含まれており、コールバック関数を指定します。 JET_TABLECREATE3構造体は、JetCreateTableColumnIndex3 関数によって使用されます。
JET_TABLECREATE3構造は、Windows 7 オペレーティング システムで導入されました。
typedef struct tagJET_TABLECREATE3 {
unsigned long cbStruct;
tchar* szTableName;
tchar* szTemplateTableName;
unsigned long ulPages;
unsigned long ulDensity;
JET_COLUMNCREATE* rgcolumncreate;
unsigned long cColumns;
JET_INDEXCREATE2* rgindexcreate;
unsigned long cIndexes;
tchar* szCallback;
JET_CBTYP cbtyp;
JET_GRBIT grbit;
JET_TABLEID tableid;
un JET_GRBIT grbit;
JET_SPACEHINTS* pSeqSpacehints;
JET_SPACEHINTS* pLVSpacehints;
unsigned long cbSeparateLV;
JET_TABLEID tableid;
unsigned long cCreated;
} JET_TABLECREATE3;>
メンバー
cbStruct
この構造体のサイズをバイト単位で指定します (将来の拡張用)。 バイト単位で sizeof( JET_TABLECREATE3 ) に設定する必要があります。
szTableName
作成するテーブルの名前です。
名前は次の条件を満たしている必要があります。
終端の null を含めず、JET_cbNameMost未満の値が必要です。
これは、0 から 9、A から Z、a から z、および感嘆符 (!)、コンマ (、)、開始角かっこ ([)、および右角かっこ (]) を除く他のすべての句読点で構成されている必要があります。つまり、ASCII 文字0x20、0x2d 0x22、0x5a、0x5c、0x7fを介して 0x5d 0x2fされます。
スペースで始めてはなりません。
少なくとも 1 つの非スペース文字で構成されている必要があります。
szTemplateTableName
基本データ定義言語 (DDL) を継承する既存のテーブルの名前。 テンプレート テーブルを使用すると、同じ列とインデックスを持つ多数のテーブルを簡単に作成できます。
ulPages
テーブルに割り当てるデータベース ページの初期数。 1 より大きい数値を指定すると、このテーブルに多数の行が挿入された場合に断片化が軽減される可能性があります。
ulDensity
パーセンテージ ポイント単位のテーブル密度。 数値は、0 または 20 から 100 の範囲である必要があります。 0 を渡すと、既定値を使用する必要があります。 既定値は 80 です。
rgcolumncreate
JET_COLUMNCREATE構造体の配列。各構造体は、新しいテーブルに作成される列に対応します。
cColumns
rgcolumncreate パラメーター内のJET_COLUMNCREATE要素の数。
rgindexcreate
JET_INDEXCREATE2構造体の配列。各構造体は、新しいテーブルに作成されるインデックスに対応します。
cIndexes
rgindexcreate パラメーター内のJET_INDEXCREATE2要素の数。
szCallback
特定のイベント中に呼び出される関数。 cbtyp は、コールバック関数が呼び出されるタイミングを決定します。
szCallback の形式は "module!function" である必要があります。たとえば、"alpha!beta" は"alpha" という名前のモジュールのベータ関数を参照します。
関数のプロトタイプは、 JET_CALLBACK コールバック関数と一致する必要があります。
cbtyp
szCallback によって指定されるコールバック関数の種類について説明します。 詳細については、「 JET_CBTYP」を参照してください。
このビットフィールドは、次の表に示す 1 つ以上のビット値で構成されます。
値 |
説明 |
---|---|
JET_cbtypFinalize |
最終処理できる列が 0 になった場合、コールバック関数が呼び出されます。 |
JET_cbtypBeforeInsert |
コールバック関数は、レコード挿入の前に呼び出されます。 |
JET_cbtypAfterInsert |
コールバック関数は、データベース エンジンがレコードの挿入を完了した後に呼び出されます。 |
JET_cbtypBeforeReplace |
コールバック関数は、レコードを変更する前に呼び出されます。 |
JET_cbtypAfterReplace |
コールバック関数は、レコードの変更が完了した後に呼び出されます。 |
JET_cbtypBeforeDelete |
コールバック関数は、レコードを削除する前に呼び出されます。 |
JET_cbtypAfterDelete |
コールバック関数は、レコードが削除された後に呼び出されます。 |
JET_cbtypUserDefinedDefaultValue |
コールバック関数は、ユーザー定義の既定値を計算するために呼び出されます。 |
JET_cbtypFreeCursorLS |
カーソルに関連付けられているローカル ストレージを解放する必要がある場合は、コールバック関数が呼び出されます。 |
JET_cbtypFreeTableLS |
コールバック関数は、テーブルに関連付けられているローカル ストレージを解放する必要がある場合に呼び出されます。 |
grbit
次の表に示す 0 個以上の呼び出しオプション値を含むビットのグループ。
値 |
説明 |
---|---|
JET_bitTableCreateFixedDDL |
テーブルに対する DDL 操作 (列の追加や削除など) を防止します。 |
JET_bitTableCreateTemplateTable |
テーブルをテンプレート テーブルに設定します。 新しいテーブルでは、このテーブルの名前をテンプレート テーブルとして指定できます。 JET_bitTableCreateTemplateTable設定は、JET_bitTableCreateFixedDDLを意味します。 |
JET_bitTableCreateNoFixedVarColumnsInDerivedTables |
JET_bitTableCreateTemplateTableと組み合わせて使用する必要があります。 非推奨。 使用しないでください。 |
pSeqSpacehints
既定のシーケンシャル インデックスの JET_SPACEHINTS 構造体へのポインター。
pSeqSpacehints は Windows 7 で導入されました。
pLVSpacehints
区切られた長い値ツリーの JET_SPACEHINTS 構造体へのポインター。
pLVSpacehints は Windows 7 で導入されました。
cbSeparateLV
組み込み LV をプライマリ レコードから分離するサイズ。 分離 LV ツリーの長値 c 構造体。 詳細については、「 JET_SPACEHINTSの ng-value」を参照してください。 レコードが大きくなりすぎると、この値より小さい長い値の列が区切られる場合があります。
cbSeparateLV は Windows 7 で導入されました。
tableid
API 呼び出しが成功した場合に新しいテーブルの JET_TABLEID を保持する出力フィールド。 API 呼び出しが失敗した場合、値は未定義です。 このテーブルは排他的に開かれます。
cCreated
API 呼び出しが成功した場合に作成されるオブジェクトの数を含む出力フィールド。 API 呼び出しが失敗した場合、値は未定義です。
作成されるオブジェクトの数は、正常に作成された列、テーブル、およびインデックスの合計と同じです。
要件
要件 | 値 |
---|---|
Client |
Windows Vista または Windows XP が必要です。 |
[サーバー] |
Windows Server 2008 または Windows Server 2003 が必要です。 |
Header |
Esent.h で宣言されています。 |
Unicode |
JET_TABLECREATE3_W (Unicode) およびJET_TABLECREATE3_A (ANSI) として実装されます。 |
こちらもご覧ください
JET_CALLBACK
JET_CBTYP
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_INDEXCREATE
JET_TABLEID
JetCreateTable
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JetDefragment2