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 は読み取り/書き込み可能になります。


OriginalValue

(PWS4 IIS4 IIS5)
OriginalValue — 変更が行われる前のレコードの Field 値を示します。

構文

object.OriginalValue

パラメータ

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

戻り値

変更前のフィールドの値をバリアント型 (Variant) の値で返します。

説明

カレント レコードからフィールドの元の値を返すには、OriginalValue プロパティを使います。

” 即時更新モード” (プロバイダが Update メソッドの呼び出し後に、基になるデータ ソースに対して変更を書き込むモード) では、OriginalValue プロパティは、変更前 (最後の Update メソッドの呼び出し以後) のフィールド値を返します。この値は、Value プロパティを置き換えるために CancelUpdate メソッドが使用する値と同じです。

” バッチ更新モード” (プロバイダが複数の変更をキャッシュし、UpdateBatch メソッドが呼び出されたときにだけ基になるデータソースに書き込むモード) では、OriginalValue プロパティは、変更前 (最後の UpdateBatch メソッドの呼び出し以後) のフィールド値を返します。この値は、Value プロパティを置き換えるために CancelBatch メソッドが使用する値と同じです。UnderlyingValue プロパティと共にこのプロパティを使用すると、バッチ更新で発生する競合を解決することができます。

Recordについて

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


NumericScale

(PWS4 IIS4 IIS5)
NumericScale — Field オブジェクトで、数値型 (Numeric) の値の桁数を示します。

構文

object.NumericScale

パラメータ

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

設定値と戻り値

数値を処理するときの小数点以下の桁数を示す Byte 値を設定します。また、値の取得も可能です。

説明

Field オブジェクトの値の小数点以下の桁数は、NumericScale プロパティを使って指定します。

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


Name

(PWS4 IIS4 IIS5)
Name — オブジェクトの名前を示します。

構文

object.Name

パラメータ

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

設定値と戻り値

オブジェクトの名前を示す文字列型 (String) の値を設定します。また、値の取得も可能です。

説明

Name プロパティを使ってField オブジェクト名を設定または取得します。

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