ActiveX Controls Guide (v11)

FieldList (ActiveX プロパティ)

適用対象

VAccess

説明

DdfPathTableName によって特定される現在のテーブルの、フィールドに関する情報を含むバリアント配列を取得または設定します。

備考

FieldList プロパティは、2 次元バリアント配列をカプセル化するバリアントを受け付けます。あるいはそのバリアントを返します。最初の添字はフィールドの 1 つのプロパティを参照し、2 番目の添字はフィールドの序数を参照します。最初の添字が参照するプロパティは次のとおりです。

添字
名前
バリアント型
説明
0
fieldID
VT_I2
フィールド テーブル辞書エントリ用の一意キーです。
1
fieldname
VT_BSTR
フィールド名です。最大で 20 文字まで格納できます。
2
datatype
VT_I2
データ型コードです。
3
offset
VT_I2
レコードの開始点からのフィールドのオフセットです。
4
size
VT_I2
フィールドのサイズです。
5
decimal
VT_I2
固定小数点以下の桁数、あるいは BIT データ型フィールドのビット オフセットです。
6
flags
VT_I2
フィールド フラグです。フィールド フラグの設定についての説明は、『SQL Engine Reference』を参照してください("X$Field" を検索してください)。
7
comment
VT_BSTR
COMMENT.DDF に保存されるフィールド コメントです。

フィールド情報を設定する場合、バリアント配列は定義される各フィールドの最低量の情報を収容できる必要があります。必要な情報には、テーブルの定義内で一意のフィールド名、有効なデータ型、複数のフィールド長をサポートするデータ型の有効なサイズなどがあります。

この配列のコメント列は、DDFGetFieldComments メソッドが FieldList プロパティを読み取る前に呼び出された場合にのみ追加されることに注意してください。

RefreshLocationsTrue に設定されている場合は、FieldList を読み取ると、VAccess は DDF ファイルを再読み取りし、DDF に保存されているフィールド情報を取得します。RefreshLocationsTrue に設定して FieldList を変更しても、すべての変更が即時に DDF 自体へ書き込まれなくなりました。DDF へ変更を実際に書き込むには、ここで DdfAddTableDdfModifyLocation などを呼び出す必要があります。これは Pervasive PSQL SDK のリリース以降での動作の変更点です。RefreshLocationsFalse の場合は、FieldList オペレーションはフィールドの VAccess コントロールのメモリ イメージを読み取り、更新します。

DdfTransactionModeRefreshLocations がともに True に設定されている場合は、FieldList のすべての操作はトランザクション内で実行されます。

'フィールドの取得 
Dim fields as Variant 
VAEngine.RefreshLocations = True 
VAEngine.DdfGetFieldComments = True 
VAEngine.TableName = tableName 
 
fields = VAEngine.FieldList 
VAEngine.RefreshLocations = False 
If Not IsEmpty(fields) 
  For i = 0 to Ubound(fields, 2) 
    'リスト ボックスにフィールド名を入れる 
    List.AddItem fields(1, i) 
  Next i 
End If 
 
'設定 
VAEngine.RefreshLocations = False 
VAEngine.FieldList = fields 
'DDF へ変更を書き込む-RefreshLocations のリセットは不要 
VAEngine.DdfAddTable(True) 

関連項目

影響元:DdfTransactionMode、RefreshLocations


ExtendedOps (ActiveX プロパティ)

Fields (ActiveX プロパティ)