次の方法で共有


JetSetColumnDefaultValue 関数

適用対象: Windows |Windows Server

JetSetColumnDefaultValue 関数

JetSetColumnDefaultValue 関数を使用して、既存の列の既定値を変更できます。

    JET_ERR JET_API JetSetColumnDefaultValue(
      __in          JET_SESID sesid,
      __in          JET_DBID dbid,
      __in          JET_PCSTR szTableName,
      __in          JET_PCSTR szColumnName,
      __in          const void* pvData,
      __in          const unsigned long cbData,
      __in          const JET_GRBIT grbit
    );

パラメーター

sesid

この呼び出しに使用するセッション。

dbid

この呼び出しに使用するデータベース。

szTableName

影響を受ける列を含むテーブルの名前。

szColumnName

既定値が変更される列の名前。

pvData

新しい既定値を含む入力バッファー。

cbData

新しい既定値を含む入力バッファーのサイズ。

grbit

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

戻り値

この関数は、次のいずれかのリターン コードを使用して 、JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張可能ストレージ エンジン エラー 」および「 エラー処理パラメーター」を参照してください。

リターン コード

説明

JET_errSuccess

操作は正常に完了しました。

JET_errClientRequestToStopJetService

JetStopService の呼び出しの結果、セッションに関連付けられたインスタンス上のすべてのアクティビティが停止したため、操作を完了することはできません。

JET_errColumnIllegalNull

JET_errNullInvalidと同じです。

JET_errColumnInUse

この指定された列は現在、インデックスによって使用されています。

JetSetColumnDefaultValue は、インデックスの定義で参照される列の既定値を変更できません。 これは、インデックスの内容が変更される可能性があるためです。

JET_errColumnNotFound

このテーブルには、この指定された列は存在しません。

JET_errInstanceUnavailable

セッションに関連付けられているインスタンスで致命的なエラーが発生したため、操作を完了できません。このエラーでは、そのデータの整合性を保護するためにすべてのデータへのアクセスを取り消す必要があります。 このエラーは、Windows XP 以降のリリースでのみ返されます。

JET_errInvalidDatabaseId

指定されたデータベース ID が無効です。

JET_errInvalidName

指定されたオブジェクト名の 1 つが無効です。 すべてのオブジェクト名は、同じ規則セットに準拠している必要があります。 これらのルールを以下に示します。

  • オブジェクト名は ASCII 文字で構成する必要があります。

  • オブジェクト名の長さは少なくとも 1 文字にする必要があります。

  • オブジェクト名の長さはJET_cbNameMost (64) 文字を超えることはできません。

  • オブジェクト名はスペースで始まる場合があります。

  • オブジェクト名には、ASCII 制御文字 (0x00 ~ 0x1F) を含めないようにしてください。

  • オブジェクト名に感嘆符 (!)、ピリオド (.)、左角かっこ ([)、または右角かっこ (]) 文字を含めないようにしてください。

  • 検証が完了すると、最初のスペース (存在する場合) までの文字列の部分のみがオブジェクト名に使用されます。 つまり、オブジェクト名にスペースを含めないようにすることができます。

JET_errNotInitialized

セッションに関連付けられているインスタンスがまだ初期化されていないため、操作を完了できません。

JET_errNullInvalid

列を NULL に設定できませんでした。 これは、次の場合 に JetSetColumnDefaultValue に対して発生します。

  • cbData は 0 です。

  • pvData は NULL です。

そのため、列の既定値 (戻る) を NULL または長さ 0 の値に設定することはできません。

JET_errObjectNotFound

この指定されたテーブルは、このデータベースには存在しません。

JET_errRestoreInProgress

セッションに関連付けられているインスタンスで復元操作が進行中であるため、操作を完了できません。

JET_errSessionSharingViolation

同じセッションを複数のスレッドに同時に使用することはできません。 このエラーは、Windows XP 以降のリリースでのみ返されます。

JET_errTableInUse

この指定されたテーブルは、別のセッションで使用されています。

JetSetColumnDefaultValue では、Windows Server 2003 より前のリリースの列の既定値を変更するために、テーブルへの排他的アクセスが必要です。

JET_errTermInProgress

セッションに関連付けられているインスタンスがシャットダウンされているため、操作を完了できません。

JET_errTransReadOnly

読み取り専用トランザクションのスコープ内で更新を試みるのは無効です。 読み取り専用トランザクションとは、 jetBeginTransaction2 の呼び出しとJET_bitTransactionReadOnlyを使用して開始されたトランザクションです。 このエラーは、Windows XP 以降のリリースでのみ返されます。

JET_errWriteConflict

別のセッションでは、更新のためにレコードが以前にロックされています。 このセッションによって試行された更新は失敗します。

成功すると、指定されたデータベース内の特定のテーブル内の指定された列の既定値が、新しい既定値に完全に変更されます。

失敗した場合、データベースの状態は変更されません。

解説

テンプレート テーブル内の列の既定値を変更することはできません。

データベース エンジンは、長いテキスト列と長いバイナリ列の場合、列の既定値を 255 バイトに自動的に切り捨てます。

要件

要件

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

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

参照

JET_DBID
JET_ERR
JET_GRBIT
JET_SESID
JetBeginTransaction2
JetStopService