JET_TABLECREATE2 構造体
適用対象: Windows |Windows Server
JET_TABLECREATE2 構造体
JET_TABLECREATE2構造体には、ESE データベース内の列とインデックスが設定されたテーブルを作成するために必要な情報と、コールバック関数を指定する情報が含まれています。 JET_TABLECREATE2構造体は、JetCreateTableColumnIndex2 によって使用されます。
Windows XP:JET_TABLECREATE2構造は Windows XP で導入されています。
typedef struct tagJET_TABLECREATE2 {
unsigned long cbStruct;
tchar* szTableName;
tchar* szTemplateTableName;
unsigned long ulPages;
unsigned long ulDensity;
JET_COLUMNCREATE* rgcolumncreate;
unsigned long cColumns;
JET_INDEXCREATE* rgindexcreate;
unsigned long cIndexes;
tchar* szCallback;
JET_CBTYP cbtyp;
JET_GRBIT grbit;
JET_TABLEID tableid;
unsigned long cCreated;
} JET_TABLECREATE2;
メンバー
cbStruct
この構造体のサイズをバイト単位で指定します (将来の拡張用)。 sizeof( JET_TABLECREATE2 ) にバイト単位で設定する必要があります。
szTableName
作成するテーブルの名前。
名前は、次の条件を満たす必要があります。
- JET_cbNameMostより小さい値を指定します。終端の NULL は含まれません。
- 0 から 9、A から Z、a から z、およびその他のすべての句読点 (!)、コンマ (、)、左角かっこ ([])、ASCII 文字0x20、0x22から0x2d 0x2f、0x5a、0x5c、0x7fまでの0x5dで構成されます。
- スペースで始まる必要はありません。
- 少なくとも 1 つの空白以外の文字で構成されます。
szTemplateTableName
基本 DDL (データ定義言語) を継承する既存のテーブルの名前。 テンプレート テーブルを使用すると、同じ列とインデックスを持つ多数のテーブルを簡単に作成できます。
ulPages
テーブルに割り当てるデータベース ページの初期数。 1 より大きい数値を指定すると、このテーブルに多数の行が挿入されると断片化が軽減される可能性があります。
ulDensity
表の密度 (パーセントポイント単位)。 数値は、0 または 20 ~ 100 の範囲である必要があります。 0 を渡すと、既定値を使用する必要があることを意味します。 既定値は 80 です。
rgcolumncreate
JET_COLUMNCREATE構造体の配列。各構造体は、新しいテーブルに作成される列に対応します。
cColumns
rgcolumncreate 内のJET_COLUMNCREATE要素の数。
rgindexcreate
JET_INDEXCREATE構造体の配列。各構造体は、新しいテーブルに作成されるインデックスに対応します。
cIndexes
rgindexcreate 内のJET_INDEXCREATE要素の数。
szCallback
特定のイベント中に呼び出される関数。 cbtyp は、コールバック関数が呼び出されるタイミングを決定します。
szCallback の形式は "module!function" である必要があります。たとえば、"alpha!beta" は"alpha" という名前のモジュールのベータ関数を参照します。 関数のプロトタイプは 、JET_CALLBACKと一致している必要があります。 詳細については、「 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_cbtypOnlineDefragCompleted |
コールバック関数は、 JetDefragment2 の呼び出しが完了した後に呼び出されます。 |
JET_cbtypFreeCursorLS |
カーソルに関連付けられているローカル ストレージを解放する必要がある場合は、コールバック関数が呼び出されます。 |
JET_cbtypFreeTableLS |
コールバック関数は、テーブルに関連付けられているローカル ストレージを解放する必要がある場合に呼び出されます。 |
grbit
次の値の 0 個以上を含む、この呼び出しのオプションを含むビットのグループ。
値 |
説明 |
---|---|
JET_bitTableCreateFixedDDL |
JET_bitTableCreateFixedDDL設定すると、テーブルに対する DDL 操作 (列の追加や削除など) が防止されます。 |
JET_bitTableCreateTemplateTable |
JET_bitTableCreateTemplateTableを設定すると、テーブルがテンプレート テーブルになります。 新しいテーブルでは、このテーブルの名前をテンプレート テーブルとして指定できます。 JET_bitTableCreateTemplateTable設定は、JET_bitTableCreateFixedDDLを意味します。 |
JET_bitTableCreateNoFixedVarColumnsInDerivedTables |
JET_bitTableCreateTemplateTableと組み合わせて使用する必要があります。 非推奨。 使用しないでください。 |
tableid
API 呼び出しが成功した場合に新しいテーブルの JET_TABLEID を保持する出力フィールド。 API 呼び出しが失敗した場合、値は未定義です。
cCreated
API 呼び出しが成功した場合に作成されるオブジェクトの数を含む出力フィールド。 API 呼び出しが失敗した場合、値は未定義です。
作成されるオブジェクトの数は、正常に作成された列、テーブル、およびインデックスの合計と同じです。
要件
要件 | 値 |
---|---|
Client |
Windows Vista または Windows XP が必要です。 |
[サーバー] |
Windows Server 2008 または Windows Server 2003 が必要です。 |
Header |
Esent.h で宣言されています。 |
Unicode |
JET_TABLECREATE2_W (Unicode) およびJET_TABLECREATE2_A (ANSI) として実装されます。 |
参照
JET_CALLBACK
JET_CBTYP
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_INDEXCREATE
JET_TABLEID
JetCreateTable
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JetDefragment2