JetAddColumn 関数
適用対象: Windows |Windows Server
JetAddColumn 関数
JetAddColumn 関数は、ESE データベース内の既存のテーブルに新しい列を追加します。
JET_ERR JET_API JetAddColumn(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCSTR szColumnName,
__in const JET_COLUMNDEF* pcolumndef,
__in_opt const void* pvDefault,
__in unsigned long cbDefault,
__out_opt JET_COLUMNID* pcolumnid
);
パラメーター
sesid
API 呼び出しに使用するデータベース セッション コンテキスト。
tableid
列を追加するテーブル。
szColumnName
追加する列の名前。 名前は次の条件を満たしている必要があります。
終端 の NULL を含めず、長さがJET_cbNameMost文字未満である必要があります。
0 から 9、A から Z、a から z、およびその他のすべての句読点 (感嘆符 (!)、コンマ (、)、始め角かっこ ([))、閉じ角かっこ (]) (ASCII 文字0x20、0x2d 0x22、0x2fから0x5a、0x5c 0x5d、0x7fを除く) の文字のみを含める必要があります。
スペースで始めることはできません。
少なくとも 1 つの非スペース文字を含む必要があります。
pcolumndef
列に格納できるデータを定義する JET_COLUMNDEF 構造体へのポインター。
pvDefault
列の既定値を含むバッファーへのポインター。 バッファーの長さは cbDefault です。 既定値がない場合は、 pvDefault を NULL に設定し、 cbDefault を 0 に設定します。 既定値は、固定列の場合はJET_cbColumnMostバイト、長い値の場合はJET_cbLVDefaultValueMostバイトを超えることはできません。 既定値がそれより大きい場合は、自動的に切り捨てられます。
grbit にJET_bitColumnUserDefinedDefaultが設定されている場合、pvDefault はJET_USERDEFINEDDEFAULT構造体へのポインターとして解釈されます。
cbDefault
pvDefault で指定されたバッファーのサイズ (バイト単位)。
pcolumnid
JET_COLUMNID構造体へのポインター。成功すると、新しく作成された列の識別子を受け取ります。 失敗した場合、値は未定義です。
戻り値
この関数は、次のいずれかの戻りコードを 使用して、JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張ストレージ エンジン エラー と エラー処理パラメーター」を参照してください。
リターン コード |
説明 |
---|---|
JET_errSuccess |
操作に成功しました。 |
JET_errFixedDDL |
固定 DDL テーブルのデータ定義を変更しようとしました。 固定 DDL を持つテーブルの例として、テンプレート テーブルがあります。 |
JET_errInvalidParameter |
無効なパラメーターが API に渡されました。 無効なパラメーターの例を次に示します。
|
JET_errInTransaction |
JET_bitColumnUnversioned ビット が設定された列を追加しようとしましたが、セッションは現在トランザクション内にあります。 |
JET_errColumnDuplicate |
列は既に存在します。 バージョン情報のない列を追加しようとしましたが、その列は既に存在します。 |
JET_errTableNotEmpty |
テーブルにはデータが含まれています。 エスクロー更新列は、空のテーブルにのみ追加できます。 |
JET_errRecordTooBig |
レコードが大きすぎます。 固定列の cbMax パラメーターの合計は、特定の値を超えることはできません。 |
JET_errTooManyColumns |
テーブルに列を追加しようとしました。 テーブルには、固定列JET_ccolFixedMost以下、可変長列JET_ccolVarMost以下、およびタグ付き列JET_ccolTaggedMost以下を含めることができます。 |
JET_errColumnRedundant |
冗長列を追加しようとしました。 1 つ以上の自動作成列は存在せず、テーブルごとに 1 つ以上のバージョン列は存在しない必要があります。 |
JET_errCallbackNotResolved |
コールバック関数を解決できませんでした。 DLL が見つからないか、DLL 内の関数が見つからない可能性があります。 十分なログ記録が有効になっている場合、イベント ログに詳細が表示されます。 |
JET_wrnColumnMaxTruncated |
固定列または可変列の最大長 (cbMax) がJET_cbColumnMostより大きいことを示す警告。 この制限は、長い値 ( JET_coltypLongBinary と JET_coltypLongText) には適用されません。 |
JET_errInvalidName |
無効な名前が szColumnName として渡されました。 制限の詳細については、 szColumnName の条件を参照してください。 |
JET_errInvalidColumnType |
coltyp フィールドが有効な列型に設定されていません。 |
JET_errInvalidCodePage |
JET_COLUMNDEF 構造体の cp パラメーターが有効なコード ページに設定されていません。 テキスト列の有効な値は、英語 (1252) と Unicode (1200) のみです。 値 0 は、既定値 (英語、1252) が使用されることを意味します。 |
JET_errTaggedNotNULL |
JET_bitColumnNotNULLは、タグ付き列、長い値列、または SLV 列では使用できません。 |
JET_errInvalidgrbit |
grbits の無効な組み合わせが指定されました。 このエラーの原因の一部を次に示します。
|
JET_errMultiValuedColumnMustBeTagged |
複数値列 (JET_bitColumnMultiValued) は、タグ付き列または長い値 (JET_coltypLongBinary または JET_coltypLongText) 列でのみ使用できます。 |
JET_errCannotBeTagged |
列がタグ付けされていない可能性がある場合に、タグ付けされた列を使用しようとしました。 タグ付けされた列を禁止するための制約の一部を次に示します。
|
JET_errExclusiveTableLockRequired |
この操作には、テーブルに対する排他ロックが必要でした。 |
JET_wrnColumnMaxTruncated |
固定列または可変列の最大長 (cbMax) がJET_cbColumnMostより大きいことを示す警告。 この制限は、長い値 ( JET_coltypLongBinary と JET_coltypLongText) には適用されません。 |
必要条件
要件 | 値 |
---|---|
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 |
JetAddColumnW (Unicode) および JetAddColumnA (ANSI) として実装されます。 |
参照
JET_COLTYP
JET_COLUMNCREATE
JET_COLUMNDEF
JET_COLUMNID
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCreateTableColumnIndex
JetCreateTableColumnIndex2