Share via


JET_COLUMNCREATE 構造体

適用対象: Windows |Windows Server

JET_COLUMNCREATE 構造体

JET_COLUMNCREATE構造では、データベースに作成する列について説明します。

    typedef struct tag_JET_COLUMNCREATE {
      unsigned long cbStruct;
      tchar* szColumnName;
      JET_COLTYP coltyp;
      unsigned long cbMax;
      JET_GRBIT grbit;
      void* pvDefault;
      unsigned long cbDefault;
      unsigned long cp;
      JET_COLUMNID columnid;
      JET_ERR err;
    } JET_COLUMNCREATE;

メンバー

cbStruct

この構造体のサイズ (バイト単位)。 このフィールドは sizeof( JET_COLUMNCREATE ) に初期化する必要があります。

szColumnName

作成する列の名前。 名前は次の条件を満たしている必要があります。

  • 終端の NULL を含めず、長さがJET_cbNameMost文字未満である必要があります。
  • これには、感嘆符 (!)、コンマ (、、)、左角かっこ ([])、ASCII 文字0x20、0x2d、0x2fから0x5a 0x22、0x5c、0x7fまでの0x5dを除く、0 ~ 9、A ~ Z、および他のすべての句読点の文字のみを含める必要があります。
  • スペースで始めることはできません。
  • 少なくとも 1 つの空白以外の文字を含む必要があります。

coltyp

列の型 (テキスト、バイナリ、数値など)。 詳細については、「 JET_COLTYP」を参照してください。

cbMax

可変長列の最大長 (バイト単位)。 固定長列の列の長さ。

grbit

この構造体のオプションを含み、次の値の 0 個以上を含むビットのグループ。

説明

JET_bitColumnFixed

列は固定されています。 列に格納されているデータの量に関係なく、行内の同じ量の領域が常に使用されます。 JET_bitColumnFixedは、JET_bitColumnTaggedでは使用できません。 このビットは、 JET_coltypLongTextJET_coltypLongBinaryなどの長い値では使用できません。

JET_bitColumnTagged

列にタグが付けられている。 タグ付けされた列にデータが含まれていない場合、データベース内の領域は占有されません。 このビットは、JET_bitColumnFixedでは使用できません。

JET_bitColumnNotNULL

列を NULL 値に設定しないでください。

JET_bitColumnAutoincrement

列は自動的にインクリメントされます。 数値は増加する数値であり、テーブル内で一意であることが保証されます。 ただし、数値は連続していない可能性があります。 たとえば、1 つのテーブルに 5 行が挿入されている場合、自動作成列には値 { 1、2、6、7、8 } を含めることができます。

Windows 2000: このビットは、 JET_coltypLong型の列でのみ使用できます。

Windows Server 2003 以降: このビットは、 JET_coltypLong 型または JET_coltypCurrency型の列でのみ使用できます。

JET_bitColumnUpdatable

このビットは、 JetGetColumnInfo の呼び出しでのみ有効です。

JET_bitColumnTTKey

このビットは、 JetOpenTempTable の呼び出しでのみ有効です。

JET_bitColumnTTDescending

このビットは、 JetOpenTempTable の呼び出しでのみ有効です。

JET_bitColumnMultiValued

列には複数値を指定できます。 複数値の列には、0 個、1 つ以上の値を関連付けることができます。 複数値列のさまざまな値は、JET_RETINFO、JET_SETINFO、JET_SETCOLUMN、JET_RETRIEVECOLUMNJET_ENUMCOLUMNVALUEなど、さまざまな構造体の itagSequence メンバーによって識別されます。 複数値の列は、タグ付けされた列である必要があります。つまり、固定長列または可変長列にすることはできません。

JET_bitColumnEscrowUpdate

列はエスクロー更新列です。 エスクロー更新列は、 JetEscrowUpdate を使用して異なるセッションによって同時に更新でき、トランザクションの一貫性を維持できます。

  • エスクロー更新列は、テーブルが空の場合にのみ作成できます。

  • エスクロー更新列は、JET_coltypLong型である必要があります。

  • エスクロー更新列には既定値が必要です ( cbDefault は正である必要があります)。

  • JET_bitColumnEscrowUpdateは、次の定数と組み合わせて使用することはできません。

    • JET_bitColumnTagged

    • JET_bitColumnVersion

    • JET_bitColumnAutoincrement

JET_bitColumnUnversioned

列はバージョンなしで作成されます。 同じ名前の列を追加しようとする他のトランザクションは失敗します。 このビットは、 JetAddColumn でのみ役立ちます。 トランザクション内では使用できません。

JET_bitColumnMaybeNull

将来利用するために予約されています。

JET_bitColumnFinalize

JET_bitColumnFinalizeの代わりにJET_bitColumnDeleteOnZeroを使用します。 JET_bitColumnFinalizeは、列を最終処理できることを指定します。 最終処理できる列に 0 に達するエスクロー更新列がある場合、行は削除されます。 今後のバージョンでは、代わりにコールバック関数を呼び出すことができます。 詳細については、「 JET_CALLBACK」を参照してください。 最終処理できる列は、エスクロー更新列である必要があります。 JET_bitColumnFinalizeは、JET_bitColumnUserDefinedDefaultでは使用できません。

JET_bitColumnUserDefinedDefault

列の既定値は、コールバック関数 JET_CALLBACKによって提供されます。 ユーザー定義の既定値を持つ列は、タグ付けされた列である必要があります。 pvDefault はJET_USERDEFINEDDEFAULT構造体を指し、cbDefault は sizeof(JET_USERDEFINEDDEFAULT) に設定する必要があります。

JET_bitColumnUserDefinedDefaultを次の定数と組み合わせて使用することはできません。

  • JET_bitColumnFixed

  • JET_bitColumnNotNULL

  • JET_bitColumnVersion

  • JET_bitColumnAutoincrement

  • JET_bitColumnUpdatable

  • JET_bitColumnEscrowUpdate

  • JET_bitColumnFinalize

  • JET_bitColumnDeleteOnZero

  • JET_bitColumnMaybeNull

JET_bitColumnDeleteOnZero

列はエスクロー更新列であり、0 に達するとレコードが削除されます。 最終化できる列の一般的な用途は、参照カウント フィールドとして使用することです。フィールドが 0 になると、レコードは削除されます。 JET_bitColumnDeleteOnZero は、JET_bitColumnFinalizeに関連しています。 ゼロ時の削除列は、エスクロー更新列である必要があります。 JET_bitColumnDeleteOnZeroは、JET_bitColumnFinalizeでは使用できません。 JET_bitColumnDeleteOnZeroは、ユーザー定義の既定の列では使用できません。

pvDefault

列の既定値となるバッファーを指します。 バッファーの長さは cbDefault です。 既定値がない場合は、 pvDefault を NULL に設定し、 cbDefault をゼロに設定する必要があります。 grbit にJET_bitColumnUserDefinedDefaultが設定されている場合、pvDefault はJET_USERDEFINEDDEFAULT構造体へのポインターとして解釈されます。 既定値は 255 バイトを超えることはできません。 既定値が 255 バイトを超える場合は、自動的に切り捨てられます。

cbDefault

pvDefault で指定されたバッファーのサイズ (バイト単位)。

cp

列のコード ページ。 テキスト列の有効な値は、英語 (1252) と Unicode (1200) のみです。 0 の値は、既定値が使用されることを意味します (英語、1252)。 列がテキスト列でない場合、コード ページは自動的にゼロに設定されます。

columnid

成功すると、新しく作成された列の列識別子がこのフィールドに返されます。 失敗した場合、値は未定義です。

err

err フィールドには、この列を作成した状態が含まれます。 戻り値の可能性の高い一覧については、「 JetAddColumn 」を参照してください。

必要条件

要件

Client

Windows Vista、Windows XP、または Windows 2000 Professional が必要です。

[サーバー]

Windows Server 2008、Windows Server 2003、または Windows 2000 Server が必要です。

Header

Esent.h で宣言されています。

Unicode

JET_COLUMNCREATE_W (Unicode) およびJET_COLUMNCREATE_A (ANSI) として実装されます。

参照

JET_COLTYP
JET_COLUMNID
JET_ERR
JET_GRBIT
JET_RETINFO
JET_SETINFO
JET_SETCOLUMN
JET_RETRIEVECOLUMN
JET_ENUMCOLUMNVALUE
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JetEscrowUpdate
JetRenameColumn
JetSetColumns