次の方法で共有


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