CancelUpdate

(PWS4 IIS4 IIS5)
CancelUpdate — Update メソッドを呼び出す前に行った、Recordset オブジェクトのカレント行または新規行、または Record オブジェクトの Fields コレクションに加えたすべての変更をキャンセルします。

構文

recordset.CancelUpdate
record.Fields.CancelUpdate

パラメータ

recordset Fields コレクションを指定します。
Fields Fields コレクションを指定します。

説明

CancelUpdate メソッドを使って、カレント行に加えた変更をすべてキャンセルしたり、新規に追加した行を破棄します。Update メソッドを呼び出した後は、カレント行または新規行に加えた変更をキャンセルすることはできません。ただし、RollbackTrans メソッドでロールバックできるトランザクションの一部か、またはバッチ更新の一部である場合は除きます。バッチ更新の場合は、CancelUpdate メソッドまたは CancelBatch メソッドで Update をキャンセルできます。

新規行を追加しているときに CancelUpdate メソッドを呼び出すと、AddNew を呼び出す前にカレントであった行がカレント行になります。

編集モードでカレント レコードから移動する (たとえば、Move、NextRecordset、Close などを使用する) 場合は、CancelUpdate を使用してすべての保留中の変更をキャンセルすることができます。データ ソースの更新が成功しなかった場合 (たとえば、参照整合性違反によって削除の試みが失敗したことにより、Delete の呼び出しの後に Recordset が編集モードのままになった場合など) には、この処理が必要になる場合があります。

Recordの場合

CancelUpdate メソッドは、Field オブジェクトの保留中の挿入または削除をすべてキャンセルし、既存のフィールドの保留中の更新をキャンセルして元の値に戻します。Fields コレクションのすべてのフィールドの Status プロパティは、adFieldOK に設定されます。


Append

(PWS4 IIS4 IIS5)
Append — コレクションにオブジェクトを追加します。コレクションが Fields である場合、コレクションにオブジェクトが追加される前に、新規 Field オブジェクトが作成されることがあります。

構文

collection.Append object
fields.Append Name, Type, DefinedSize, Attrib, FieldValue

パラメータ

collection コレクション オブジェクトを指定します。
fields Fields コレクションを指定します。
object 追加するオブジェクトを表すオブジェクト変数を指定します。
Name 新規 Field オブジェクトの名前を含む文字列型 (String) の値を指定します。fields に含まれるほかのオブジェクトとは異なる名前にする必要があります。
Type 新規フィールドのデータ型を DataTypeEnum 値で指定します。既定値は adEmpty です。adIDispatch、adIUnknown、および adVariant の各データ型は、ADO ではサポートされていません。したがって、Recordset に新規フィールドを追加するときに、これらのデータ型を使用することはできません。
DefinedSize 省略可能です。新規フィールドの指定サイズを文字数またはバイト数で表す長整数型 (Long) の値を指定します。このパラメータの既定値は、Type によって決まります。DefinedSize が 255 バイトを超えるフィールドは、可変長列として扱われます (既定の DefinedSize は指定されません)。
Attrib 省略可能です。新規フィールドの属性を FieldAttributeEnum 値で指定します。既定値は adFldDefault です。値を指定しない場合は、Type に基づいた属性が設定されます。
FieldValue 省略可能です。新規フィールドの値を表すバリアント型 (Variant) の値を指定します。値を指定しない場合は、Null 値が設定されます。

説明

FieldValue パラメータは、Record オブジェクトに (Recordset オブジェクトではなく)、Field オブジェクトを追加する場合にのみ有効です。Record オブジェクトでは、フィールドの追加と値の設定を同時に行うことができます。Recordset オブジェクトでは、Recordset を閉じているときにフィールドを作成し、その後で Recordset を開いてフィールドに値を設定する必要があります。

注意 Record オブジェクトの Fields コレクションに新規の Field オブジェクトを追加した場合は、まず、Value プロパティを設定してから、その他の Field プロパティを指定する必要があります。まず、Value プロパティの特定の値を割り当て、Fields コレクションに Update を呼び出しておきます。これで、Type や Attributes などその他のプロパティにアクセスできます。

データ型 (DataTypeEnum 値) が adArray、adChapter、adEmpty、adPropVariant、または adUserDefinedField の Field オブジェクトを、Fields コレクションに追加することはできません。これらのオブジェクトを追加すると、エラーが発生します。また、ADO では、adIDispatch、adIUnknown、および adIVariant のデータ型はサポートされていません。これらのデータ型の場合、追加時にエラーは発生しませんが、メモリリークなどの予期しない結果が生じる可能性があります。

レコードの場合

開いている Record の Fields コレクションで Append メソッドを呼び出しても、実行時エラーは発生しません。新規フィールドは、Record オブジェクトの Fields コレクションに追加されます。ただし、Recordset からの Record の場合、Recordset オブジェクトの Fields コレクションに新規フィールドは追加されません。

存在しないフィールドを作成して Fields コレクションに追加することができます。このためには、コレクションに既に存在しているフィールドの場合と同じように、フィールドオブジェクトに値を指定します。この指定によって、その Field オブジェクトの作成と追加が自動的に実行されます。

Record オブジェクトの Fields コレクションに Field を追加した後は、Fields コレクションの Update メソッドを呼び出して変更を保存してください。


Fieldsコレクション

共通のデータ型を持つデータの列を表します。

* Append
* CancelUpdate
* Delete
* Item
* Refresh
* Update
* Count


GetChunk

(PWS4 IIS4 IIS5)
GetChunk — 大きなサイズのテキストまたはバイナリ型の Field オブジェクトの、全部または一部の内容を返します。

構文

field.GetChunk( Size )

パラメータ

Size 取得するバイト数または文字数を表す長整数型 (Long) の式を指定します。

戻り値

バリアント型 (Variant) の値を返します。

説明

ield オブジェクトで GetChunk メソッドを使用すると、長バイナリまたは文字データの全体または一部を取得できます。システム メモリに制限がある場合、GetChunk メソッドを使用すると、長い値を短いセグメントに分けて操作できます。

GetChunk メソッドから返されたデータは variable に代入されます。Size が残りのデータより大きい場合は、空白で variable のサイズの残りを埋めずに残りのデータのみが返されます。フィールドが空の場合は、Null 値が返されます。

GetChunk メソッドを連続して使うと、直前の GetChunk の呼び出しで取得されたデータの直後からデータが取得されます。ただし、あるフィールドからデータを取得しているときに、カレントレコードの別のフィールド値の設定または読み取りを行うと、最初のフィールドからのデータ取得は終了したと見なされます。そのため、もう一度最初のフィールドで GetChunk メソッドを呼び出すと、新規の GetChunk 操作と解釈され、データの始めから読み取りが開始されます。最初の Recordset オブジェクトのクローンを除く別の Recordset オブジェクトのフィールドにアクセスした場合は、GetChunk メソッドの操作は中断されません。

Field オブジェクトの Attributes プロパティで adFldLong ビットが “True” に設定されている場合、そのフィールドに GetChunk メソッドを使用することができます。

Field オブジェクトで GetChunk メソッドを使用する際にカレント レコードが存在しない場合、エラー 3021 (カレント レコードはありません) が発生します。

注意 GetChunk メソッドでは、Record オブジェクトの Field オブジェクトを操作することはできません。操作は何も実行されず、実行時エラーが発生します。


AppendChunk

(PWS4 IIS4 IIS5)
AppendChunk — 大きなサイズの文字列またはバイナリの Field オブジェクにデータを追加します。

構文

object.AppendChunk Data

パラメータ

object Field オブジェクトまたは Parameter オブジェクトを指定します。
Data オブジェクトに追加するデータを含むバリアント型 (Variant) のデータを指定します。

説明

Field オブジェクトの Attributes プロパティで adFldLong ビットが True (1) に設定されている場合、そのフィールドに AppendChunk メソッドを使用することができます。

Field オブジェクトで AppendChunk メソッドを最初に呼び出したときは、フィールドの既存データに上書きしてデータが書き込まれます。AppendChunk メソッドを続けて呼び出したときは、既存データに追加されます。あるフィールドにデータを追加し、その後、カレントレコードの別のフィールド値の設定または読み取りを行うと、最初のフィールドへのデータの追加は終了したと見なされます。したがって、もう一度最初のフィールドで AppendChunk メソッドを呼び出すと、新規の AppendChunk 操作と解釈され、既存データに上書きされます。最初の Recordset オブジェクトのクローン以外のほかの Recordset オブジェクトのフィールドにアクセスしても、AppendChunk 操作は中断されません。

Field オブジェクトで AppendChunk メソッドを呼び出したときにカレント レコードが存在しない場合、エラーが発生します。

注意 AppendChunk メソッドでは、Record オブジェクトの Field オブジェクトを操作することはできません。操作は何も実行されず、実行時エラーが発生します。


Value

(PWS4 IIS4 IIS5)
Value — Field オブジェクトに割り当てられた値を示します。

構文

object.Value

パラメータ

object Fields オブジェクトを指定します。

設定値と戻り値

オブジェクトの値を表すバリアント型 (Variant) の値を設定します。また、値の取得も可能です。既定値は、Type プロパティの設定によって異なります。

説明

Field オブジェクトのデータを設定または取得するときは、Value プロパティを使います。Value プロパティは、状況に応じて読み取り/書き込み可能になったり、読み取り専用になります。詳細については、関連するオブジェクトのトピックを参照してください。

ADO では、Value プロパティを使って長バイナリ型 (Long Binary) データを設定したり、返すことができます。

注意 Parameter オブジェクトの場合、ADO は、プロバイダから一度だけ Value プロパティを読み取ります。コマンドに Value プロパティが空の Parameter があり、そのコマンドから Recordset を作成する場合は、Value プロパティを取得する前に必ず Recordset を閉じてください。そうしないと、プロバイダによっては Value プロパティが空になり、正しい値が設定されないことがあります。

Record オブジェクトの Fields コレクションに追加された新規 Field オブジェクトの場合は、ほかの Field プロパティを指定する前に、Value プロパティを設定する必要があります。そのために、Value プロパティの特定の値を割り当て、Fields コレクションに Update を呼び出しておきます。これで、Type や Attributes などその他のプロパティにアクセスできます。


UnderlyingValue

(PWS4 IIS4 IIS5)
UnderlyingValue — データベース内の Field オブジェクトの現在の値を示します。

構文

object.UnderlyingValue

パラメータ

object Fields オブジェクトを指定します。

戻り値

Field の値を表すバリアント型 (Variant) の値を返します。

説明

データベースから現在のフィールド値を返すには、UnderlyingValue プロパティを使います。UnderlyingValue プロパティのフィールド値はトランザクションで参照でき、通常は、ほかのトランザクションによる最近の更新結果になります。したがってこの値は、 Recordset に最初に返された値を表す OriginalValue プロパティと異なる場合があります。

これは、Resync メソッドの使用時と似ていますが、UnderlyingValue プロパティは、カレント レコードから特定フィールドの値のみを返します。この値は、Resync メソッドが Value プロパティを置き換えるときに使う値と同じです。

このプロパティを OriginalValue プロパティと併用すると、バッチ更新で発生する競合を解消できます。

Recordの場合

Record オブジェクトの場合、Update の呼び出し前に追加されるフィールドでは、このプロパティは空です。


Type

(PWS4 IIS4 IIS5)
Type — Type プロパティは Field オブジェクトのデータ型を返します。読み取り専用。

構文

objField.Type

パラメータ

object Fields オブジェクトを指定します。

戻り値

Field のデータ型を表すイント型 (Integer) の値を返します。

説明

Type プロパティは、Field オブジェクトのデータ型を持ち、Value プロパティに設定可能な値の有効範囲を決定します。フィールドを作成する前に Fields コレクションの Add メソッドで Class パラメータを指定すると、Type プロパティが設定されます。後から Type プロパティを変更することはできません。

有効なデータ型は次の表のとおりです。

説明 10 進数値 OLE バリアント 型 MAPI プロパティ タイプ
vbArray 複数値型 8192 VT_ARRAY PT_MV_FLAG
vbBlob バイナリ (形式は不明) 65 VT_BLOB PT_BINARY
vbBoolean ブール 11 VT_BOOL PT_BOOLEAN
vbCurrency 8 バイト整数 (小数点以下 4 桁の固定小数点) 6 VT_CY PT_CURRENCY
vbDataObject データ オブジェクト 13 VT_UNKNOWN PT_OBJECT
vbDate 8 バイト実数 (日付は整数日、時刻は小数部) 7 VT_DATE PT_APPTIME
vbDouble 8 バイト実数(浮動小数点) 5 VT_R8 PT_DOUBLE
PT_R8
vbEmpty 未初期化済み 0 VT_DEREF PT_UNSPECIFIED
vbInteger 2 バイト整数 2 VT_I2 PT_I2PT_SHORT
vbLong 4 バイト整数 3 VT_I4 PT_I4PT_LONG
vbNull ヌル値 (無効なデータ) 1 VT_NULL PT_NULL
vbSingle 4 バイト実数 (浮動小数点) 4 VT_R4 PT_FLOATPT_R4
vbString 文字列 8 VT_BSTR PT_TSTRING
vbVariant バリアント (未知の型のオブジェクト) 12   PT_UNSPECIFIED

現在のバージョンの CDO では、vbNull と vbDataObject 型はサポートされていません。Class パラメータに vbEmpty が指定された場合、Add メソッドは新しいフィールドの値からデータ型を取得するので、 プロパティの値に vbEmpty 型が入ることはありません。

vbArray 型は、vbArray + vbString というように必ずほかの型と組み合わせて使われなければなりません。配列全体が同じ型である必要があります。vbArray を含む型では、単一の演算子で比較などの操作を行うことはできません。

複数値フィールドを配列と組み合わせて使う場合は、適切なデータ型で配列を宣言する必要があります。複数値フィールドにはさまざまなデータ型の配列を代入可能ですが、必ず vbVariant の配列を返すので、フィールド値を設定するか取得するかによってデータ型は異なります。


Status

(PWS4 IIS4 IIS5)
Status — Field オブジェクトのステータスを示します。

構文

object.Status

パラメータ

object Fields オブジェクトを指定します。

戻り値

FieldStatusEnum 値を返します。既定値は adFieldOK です。

説明

Record または Recordset の Fields コレクション内の Field オブジェクトの値を変更すると、変更内容はそのオブジェクトの Update メソッドを呼び出すまでキャッシュされます。Update メソッドが呼び出されたときに、Field の値に対する変更がエラーになると、OLE DB ではエラー DB_E_ERRORSOCCURRED (2147749409) が発生します。Fields コレクションに属する、エラーを起こしたすべての Field オブジェクトの Status プロパティには、問題の原因を示す FieldStatusEnum 値が格納されます。

Record オブジェクトの Fields コレクションに対する追加データや削除データは、Update メソッドを呼び出すまでキャッシュされます。Status プロパティでは、追加または削除に成功したフィールドを確認できます。

パフォーマンスを向上させるために、Update が呼び出されるまでスキーマの変更はキャッシュされ、その変更は共有的なバッチ更新時に反映されます。Update メソッドが呼び出されなければ、サーバーは更新されません。更新が失敗すると、OLE DB プロバイダ エラー (DB_E_ERRORSOCCURRED) が返されます。また、Status プロパティは、操作とエラー ステータスコードが組み合わさった値を示します。たとえば、adFieldPendingInsert OR adFieldPermissionDenied はその例です。Field が追加、変更、または削除されなかった理由は、各 Field の Status プロパティで確認できます。

Field の追加、変更、または削除の際に発生した多くの種類の問題が Status プロパティ経由で報告されます。たとえば、ユーザーが Field を削除すると、その Field には Fields コレクションから削除されたことを示すマークが付けられます。ユーザーに権限が与えられていない Field を削除しようとしたことが原因で、その後の Update でエラーが返されると、Field の Status は adFieldPermissionDenied OR adFieldPendingDelete になります。CancelUpdate メソッドを呼び出すと、元の値が復元され、Status は adFieldOK に設定されます。

同様に、新規 Field が追加され、不適切な値が割り当てられると、Update メソッドでエラーが返されます。その場合、新規 Field は Fields コレクションに入りますが、そのステータスは adFieldPendingInsert となり、場合によっては adFieldCantCreate になります (プロバイダによります)。この新規 Field には適切な値を指定して、Update を再び呼び出すことができます。


Precision

(PWS4 IIS4 IIS5)
Precision — 数値型の Field オブジェクトの精度を示します。

構文

object.Precision

パラメータ

object Fields オブジェクを指定します。

設定値と戻り値

値を表す場合の最大桁数を示すバイト型 (Byte) の値を設定します。また、値の取得も可能です。

説明

Field オブジェクトで使用される数値の最大桁数を指定するには、Precision プロパティを使います。

Field オブジェクトの場合、Precision は一般には読み取り専用です。ただし、Record の Fields コレクションに追加された新規 Field オブジェクトの場合、Field の Value プロパティが指定されていて、データ プロバイダが Fields コレクションの Update メソッドを呼び出して新規 Field の追加に成功した場合に限り、Precision は読み取り/書き込み可能になります。