ActiveX メソッド リファレンス
 
このページをシェアする                  
ActiveX メソッド リファレンス
この章では、ActiveX アクセス方法のメソッドについて説明します。アルファベット順にメソッドを説明します。
AboutBox
適用対象
Vaccess、VACombo、VAList、VACommand、VAHScroll、VAVScroll、VAOption、VAText
説明
ActiveX コントロールの著作権とバージョン情報を表示します。
AddItem
適用対象
VACombo、VAList
説明
フィールド バウンド モードで動作している VAList コントロールまたは VACombo コントロールに項目を追加します。
構文
object.AddItem item, index
AddItem メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。[適用対象]のオブジェクトを評価するオブジェクト式です。
item
必須。object に追加する項目を指定する文字列式です。
index
省略可能。新規項目が配置されるオブジェクト内の位置を指定する整数です。VAList コントロールまたは VACombo コントロールの最初の項目の場合、index0 です。
備考
index に有効な値を入力すると、itemobject 内の指定位置に配置されます。index を省略すると、item は適切にソートされた位置(Sorted プロパティが True に設定されている場合)か、一覧の最後(Sorted プロパティが False に設定されている場合)に追加されます。
レコード リスト モードで動作している(VARecordList プロパティが True に設定されている)VAList コントロールまたは VACombo コントロールは、AddItem メソッドをサポートしません。
Private Sub Command1_Click()
VAList1.AddItem (Text2.Text)
End Sub
Btrv
適用対象
VAccess
説明
VAccess コントロールに関連付けられているファイルに対して PSQL オペレーションを実行し、そのオペレーションのステータスを返します。
構文
object.Btrv opcode
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
opcode
必須。実行する PSQL オペレーションを指定します。
備考
VAccess コントロールで実行可能な PSQL 関数はどれでも、Btrv メソッドを用いて使用することができます。このメソッドは単一パラメーター、OpCode を使用します。OpCode 定数宣言は、GLOBAL.BAS ファイル(Visual Basic の場合)、GLOBAL.PAS ファイル(Delphi の場合)および GLOBAL.H ファイル(Visual C++ の場合)に含まれています。アプリケーションで OpCode 定数を使用するには、これらのファイルのうち 1 つ、開発環境に適したファイルをプロジェクトに含めます。
次のような opcode 設定が可能です。
 
コード
グローバル定数
説明
0
BTO_Open
VAccess コントロールの TableName として指定された PSQL ファイル テーブルを開きます。
1
BTO_Close
PSQL テーブルを閉じます。
2
BTO_Insert
PSQL テーブルにメモリ内の現在のレコードを挿入します。
3
BTO_Update
PSQL テーブル内の現在のレコードをメモリ内の現在のレコードに含まれるデータで更新します。
4
BTO_Delete
現在のレコードをファイルから削除します。
5
BTO_GetEqual
指定された FieldValue に等しいインデックス値を持つ最初のレコードを取得します。
6
BTO_GetNext
現在のインデックス パスで次のレコードを取得します。
7
BTO_GetPrevious
現在のインデックス パスで前のレコードを取得します。
8
BTO_GetGreater
指定された FieldValue のインデックス値より大きいインデックス値を持つレコードを取得します。
9
BTO_GetGreaterOrEqual
指定された FieldValue のインデックス値より大きいか、等しいインデックス値を持つレコードを取得します。
10
BTO_GetLess
指定された FieldValue のインデックス値より小さいインデックス値を持つレコードを取得します。
11
BTO_GetLessOrEqual
指定された FieldValue のインデックス値より小さいか、等しいインデックス値を持つレコードを取得します。
12
BTO_GetFirst
現在のインデックス パスで最初のレコードを取得します。
13
BTO_GetLast
現在のインデックス パスで最後のレコードを取得します。
22
BTO_GetPosition
PSQL ファイル内の現在のレコードの物理位置を、VAccess コントロールの Position プロパティにセットします。
23
BTO_GetDirect
VAccess コントロールの Position プロパティで指定されているレコードを取得します。
24
BTO_StepNext
VAccess から、現在のレコードの物理的に次にあたる位置からレコードを取得します。
30
BTO_ClearOwner
ファイルの現在のオーナー ネーム セキュリティをクリアします。メモ:ファイルは既存のオーナー ネームを使用して先に開いておく必要があります。
33
BTO_StepFirst
ファイルの先頭の物理位置にあるレコードを取得します。
34
BTO_StepLast
ファイルの末尾の物理位置にあるレコードを取得します。
35
BTO_StepPrevious
VAccess から、現在のレコードの物理的に前にあたる位置からレコードを取得します。
オペレーション コードにロック バイアスを加算することによって、PSQL のレコードをロックできます。Btrv では Get または Step オペレーションにロックを指定することができます。ロックを解除する場合は、Unlock メソッドを使用します。ロック バイアスは次のとおりです。
ロック バイアス
グローバル定数
説明
200
BTO_SingleNoWait
単一レコード ノーウェイト ロックです。レコードが既にロックされている場合、PSQL はアプリケーションにステータス コード 84(レコードが使用中)のエラーを返します。
400
BTO_MultiNoWait
複数レコード ノーウェイト ロックです。レコードが既にロックされている場合、PSQL はアプリケーションにステータス コード 84(レコードが使用中)のエラーを返します。
If Check1.Value = 1 Then
   stat = VAccess1.Btrv(5) 'GetEqual
Else
   stat = VAccess1.Btrv(9) 'GetGreaterOrEqual
End If
Clear
適用対象
Vaccess、VACombo、VAList
説明
VAList または VACombo の内容をクリアし、VAccess コントロールのデータ バッファーとインデックス バッファーの内容をクリアします。
構文
object.Clear
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
備考
レコード リスト モードで動作している(VARecordList プロパティが True に設定されている)VAList コントロールまたは VACombo コントロールは、Clear メソッドをサポートしません。
'データ バッファーとすべてのバウンドコントロールをクリアする
VAccess1.Clear
Close
適用対象
VAccess
説明
VAccess コントロールに関連するファイルを閉じ、Close オペレーションのステータスを返します。
構文
object.Close
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
備考
このメソッドは object に関連付けられているファイルを閉じ、そのオペレーションの PSQL ステータス コードを返します。戻り値がゼロであれば正常に実行されています。
If index > -1 Then 'リストから選択済み
   VAccess1.Close
   VAccess1.FileName = Combo1.List(index)
   VAccess1.Open
End If
DdfAddIndex
適用対象
VAccess
説明
DDF ファイルおよび対応する PSQL ファイルにインデックスを追加します。正常に実行された場合は 0 を、エラーが発生した場合は PSQL ステータス コードを返します。
構文
object.DdfAddIndex indexList
DdfAddIndex メソッドの構文は次のような要素で構成されます。
 
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
indexList
必須。プロパティ リファレンスの「IndexList」に記述されているように、2 次元配列のインデックス情報です。
戻り値
DdfAddIndex は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
DdfAddIndex は実際のデータ ファイル自体に indexList のインデックスを追加します。また、この関数は indexList のインデックスを VAccess コントロールのメタデータ メモリ イメージに追加します。RefreshLocationsTrue の場合、DdfAddIndex は現在のメモリ イメージと一致するように DDF ファイルを更新します。DdfTransactionModeTrue の場合、これらの操作はトランザクション内部で実行されます。
メモ:DdfAddIndex はデータ ファイル自体のインデックス構造を変更します。注意して使用してください。
関連項目
IndexList、RefreshLocations、DdfTransactionMode、DdfDropIndex
DdfAddTable
適用対象
VAccess
説明
TableNameLocationFieldListIndexList の値によって定義される現在のテーブルを現在の DDF に追加します。
構文
object.DdfAddTable bOverwrite
DdfAddTable メソッドの構文は次のような要素で構成されます。
 
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
bOverwrite
必須。既存のテーブル定義が存在する場合に、VAccess コントロールがその定義を上書きするかどうかを指定するブール値です。
戻り値
DdfAddTable は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
DdfAddTable は VAccess コントロールの現在のメモリ イメージにある情報を DDF ファイル自体に書き込みます。bOverwrite が True の場合、コントロールは同じ名前を持つ既存テーブルを上書きします。False の場合は、同名のテーブルが(DdfPath プロパティで指定された)現在の DDF に存在すると、このメソッドはエラーとなります。
この関数はメタデータの VAccess メモリ イメージやデータ ファイル自体を操作することはありません。新しい空のテーブルをメタデータの VAccess メモリ イメージに作成するには、DdfAddTableName メソッドを使用します。新しいテーブルを DDF および指定された場所にある対応する空のデータ ファイルに作成するには、DdfCreateTable メソッドを使用します。
ほかの多くの辞書メソッドやプロパティと異なり、DdfAddTableRefreshLocations をチェックしません。これは DDF 情報を書き込むためだけに使用されるので、直接 DDF に書き込むことを想定しています。この動作は、VAccess メモリ イメージを使用して、一度のパスで DDF への変更を保管し、それらの変更を DDF へ書き込むつもりならば、RefreshLocations を切り替える必要はないということです(『PSQL Programmer's Guide』を参照)。
DdfTransactionModeTrue の場合、DDF への書き込みはトランザクション内部で実行されます。
'フィールド、インデックス、テーブル名、および場所は既に設定されているものと仮定
VAEngine.FieldList = fields
VAEngine.IndexList = indexes
VAEngine.fileName = tableName
VAEngine.location = location
status = VAEngine.DDFAddTable(True)
関連項目
DdfAddTableName、DdfCreateTable、DdfTransactionMode
DdfAddTableName
適用対象
VAccess
説明
新しいテーブルを現在の VAccess コントロール メモリ イメージに追加し、関連付けられている LocationFieldList、および IndexList を初期化して、新しいテーブル定義を辞書に追加できるようにします。
構文
object.DdfAddTableName tableName
DdfAddTableName メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
tableName
必須。VAccess メモリ イメージ内の新規テーブル名。これは、既存テーブル名は使用できません。既存テーブル名を使用するとメソッドはエラーとなります。
戻り値
DdfAddTableName は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
DdfAddTableName は、新しいテーブルのメタデータの定義における最初のステップです。これは、VAccess コントロールのメモリ イメージだけに影響します。そのため、RefreshLocations または DdfTransactionMode の現在の値の影響は受けません。
VAEngine.RefreshLocations = False
VAEngine.DdfAddTableName tableName
VAEngine.DdfModifyLocation dataLocation
'フィールドとインデックスを設定する
VAEngine.FieldList = myFieldsVariant
VAEngine.IndexList = myIndexVariant
'DDF へ変更を書き込む
'RefreshLocations のリセットは不要
VAEngine.DdfAddTable(True)
関連項目
DdfAddTable、DdfModifyTableName
DdfClearFields
適用対象
VAccess
説明
現在のテーブルの VAccess メモリ イメージ(およびオプションで DDF)のフィールド情報をクリアします。
構文
object.DdfClearFields
DdfClearFields メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
戻り値
DdfClearFields は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
DdfClearFields は必ず VAccess メモリ イメージの現在のフィールド情報を破棄します。RefreshLocationsTrue の場合は、FIELD.DDF の現在のテーブルのフィールド情報もすべて削除します。この副作用として、INDEX.DDF は正しいフィールド情報を取得できなくなるため、このような状況が起こった場合には事実上、このテーブルのメタデータはすべて破壊されます。このメソッドを呼び出す前に、RefreshLocationsFalse に設定することを強くお勧めします。
関連項目
FieldList、RefreshLocations、DdfTransactionMode
DdfClearIndexes
適用対象
VAccess
説明
現在のテーブルの VAccess メモリ イメージ(およびオプションで DDF)のインデックス情報をクリアします。
構文
object.DdfClearIndexes
DdfClearIndexes メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
戻り値
DdfClearIndexes は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
DdfClearIndexes は必ず VAccess メモリ イメージの現在のフィールド情報を破棄します。RefreshLocationsTrue の場合は、INDEX.DDF の現在のテーブルのインデックス情報もすべて削除します。このメソッドを呼び出す前に、RefreshLocationsFalse に設定することを強くお勧めします。
関連項目
DdfClearIndexes、IndexList、RefreshLocations、DdfTransactionMode
DdfCreateDictionary
適用対象
VAccess
説明
DdfPath プロパティによって指定された場所に一連の新たな空の DDF ファイルを作成します。これは、データのテーブル、インデックス、フィールドを含んでいないデータ辞書を作成します。これらは DdfCreateTableDdfAddTableNameDdfAddTableDdfAddIndex を使用して追加する必要があります。
構文
object.DdfCreateDictionary bOverwrite
AddItem メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
bOverwrite
必須。既存の辞書が存在する場合に、VAccess コントロールがそれを上書きするかどうかを指定するブール値です。
戻り値
DdfCreateDictionary は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
DdfCreateDictionary は FILE.DDF、FIELD.DDF、INDEX.DDF の各システム ファイルを作成し、これらのファイルに自己参照型のシステム テーブル定義レコードを設定します。また、拡張辞書ファイルの FIELDEXT.DDF と COMMENT.DDF も作成します。
現在、指定された DdfPath パスに辞書が存在している場合、コントロールは bOverwrite をチェックして、現在の辞書を削除して書き直すかどうかを判定します。bOverwriteTrue の場合、既存の辞書は破棄され、元に戻せなくなります。
関連項目
DdfPath、DdfTransactionMode
DdfCreateTable
適用対象
VAccess
説明
辞書にテーブル定義を追加し、Location プロパティに指定されているパスとファイル情報、および FieldListIndexList によって定義されている属性を使用して、空のデータ ファイルを作成します。
構文
object.DdfCreateTable bOverwrite
DdfCreateTable メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
bOverwrite
必須。既存のテーブル定義およびテーブルが存在する場合に、VAccess コントロールがそれらを上書きするかどうかを指定するブール値です。
戻り値
DdfCreateTable は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
このメソッドは最初に DdfAddTable を呼び出し、テーブル定義を辞書に追加します。もし、この呼び出しが何らかの理由で失敗した場合、たとえば、テーブル定義が既に存在していて bOverwriteFalse の場合は、DdfCreateTable も失敗します。DdfAddTable が正常に実行されると、このメソッドは Location を使って新たに空のデータ ファイルを作成します。また bOverwrite パラメーターによって、Location に存在するデータ ファイルを上書きするかどうかを制御します。
ほかの多くの辞書メソッドやプロパティと異なり、DdfCreateTableRefreshLocations をチェックしません。これは VAccess メモリ イメージに影響しないので、DDF に直接書き込むことを想定しています。この動作は、VAccess メモリ イメージを使用して、一度のパスで DDF への変更を保管し、それらの変更を DDF へ書き込み、テーブルを作成するつもりならば、RefreshLocations を切り替える必要がないということです(『PSQL Programmer's Guide』を参照)。
'フィールド、インデックス、テーブル名、および場所は既に設定されているものと仮定
VAEngine.RefreshLocations = False
VAEngine.FieldList = fields
VAEngine.IndexList = indexes
VAEngine.TableName = tableName
VAEngine.Location = location
status = VAEngine.DDFCreateTable(True)
関連項目
DdfAddTable
DdfDropIndex
適用対象
VAccess
説明
現在の PSQL データ ファイルからインデックスを削除します。また、RefreshLocationsTrue の場合は、現在のテーブルのデータ辞書定義からもインデックスを削除します。
メモ:DdfDropIndex は、データ ファイル自体のインデックス構造を変更するので、正しく使用しないと非常に危険です。データ ファイルを使用する既存プログラムは、この操作を実行した後は動作しなくなる可能性があります。注意して使用してください。
構文
object.DdfDropIndex keynum
DdfDropIndex メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
keynum
必須。ファイルから削除されるキーの序数を表す整数です。
戻り値
DdfDropIndex は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
DdfDropIndex は実際のデータ ファイル自体から指定されたインデックスを削除します。また、この関数は VAccess コントロールのメタデータ メモリ イメージからインデックスを削除します。RefreshLocationsTrue の場合、DdfDropIndex は現在のメモリ イメージと一致するように DDF ファイルを更新します。DdfTransactionModeTrue の場合、これらの操作はトランザクション内部で実行されます。
ファイルの最後のインデックス以外のインデックスを削除すると、すべてのインデックスの番号が付け替えられます。たとえば、5 つのインデックスがあるテーブル内で 3 番目のキーが削除されると、キー #3 がキー #2 に、キー #4 がキー #3 になります。DdfDropIndexMaintain を使用すると、テーブルのその他のキーを混乱させることなく、インデックスを削除することができます。
'現在インデックスを使用しているアプリケーションをすべて終了する
For i = 0 To VAEngine.TotalKeys – 1
   'TotalKeys の値はループを通るたびに 1 減算されるため、
   '常にキー番号 0 が削除される
   status = VANew.DdfDropIndex(0)
   If status > 0 Then
      errorMsg = "Error occurred during Drop " _
         + "Index " + CStr(i) + _
         " operation. Btrieve status " + _
         CStr(status) + ". "
      MsgBox errorMsg, vbExclamation
   End If
Next i
関連項目
IndexList、RefreshLocations、DdfAddIndex、DdfDropIndexMaintain
DdfDropIndexMaintain
適用対象
VAccess
説明
現在の PSQL データ ファイルからインデックスを削除します。RefreshLocationsTrue の場合、既存インデックスの順序を変更することなく、現在のテーブルのデータ辞書定義からインデックスを削除します。
構文
object.DdfDropIndexMaintain keynum
DdfDropIndexMaintain メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
keynum
必須。ファイルから削除されるキーの序数を表す整数です。
戻り値
DdfDropIndexMaintain は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
DdfDropIndexMaintain は実際のデータ ファイル自体から指定されたインデックスを削除します。また、この関数は VAccess コントロールのメタデータ メモリ イメージからインデックスを削除します。RefreshLocationsTrue の場合、DdfDropIndex は現在のメモリ イメージと一致するように DDF ファイルを更新します。DdfTransactionModeTrue の場合、これらの操作はトランザクション内部で実行されます。
DdfDropIndex とは異なり、DdfDropIndexMaintain はほかの既存キーの序数値を変更しません。削除されたキーを使用するアプリケーションだけが悪影響を受けます。
DdfDropIndexMaintain は、データ ファイル自体のインデックス構造を変更するので、正しく使用しないと非常に危険です。データ ファイルを使用する既存プログラムは、この操作を実行した後は動作しなくなる可能性があります。注意して使用してください。
'インデックス #1 を使用するアプリケーションだけを終了する
status = VANew.DdfDropIndexMaintain(1)
If status > 0 Then
   errorMsg = "Error occurred during Drop Index " + _
      CStr(i) + " operation. Btrieve status " + _
      CStr(status) + ". "
   MsgBox errorMsg, vbExclamation
End If
関連項目
IndexList、RefreshLocations、DdfAddIndex、DdfDropIndex
DdfDropTable
適用対象
VAccess
説明
TableName で指定される現在のテーブルをデータ辞書から削除します。
構文
object.DdfDropTable
DdfDropTable メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
戻り値
DdfDropTable は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
DdfDropTable は、現在のテーブルへのすべての参照を現在のデータ辞書から削除します。これはデータ ファイルにはまったく影響しません。
ほかの多くの辞書メソッドやプロパティと異なり、DdfDropTableRefreshLocations をチェックしません。これは DDF 情報を削除することだけを目的としているので、DDF に直接書き込むことを想定しています。
関連項目
DdfAddTable、DdfAddTableName、TableName
DdfGetFieldComments
適用対象
VAccess
説明
COMMENT.DDF ファイルからフィールド コメントを VAccess メモリ イメージに読み取ります。
構文
object.DdfGetFieldComments
DdfGetFieldComments メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
戻り値
DdfGetFieldComments は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
DdfGetFieldComments は VAccess メモリ イメージのフィールド コメント情報を強制的にリフレッシュします。DDF からメモリ イメージを更新すると自動的にこの情報もリフレッシュされるので、この操作が必要になることはまずありません。これは、RefreshLocations が False に設定されていて、DDF 情報が変わらない場合にのみ必要となります。コメント情報はほかの DDF 情報とは共存しません。
ほかの多くの辞書メソッドやプロパティと異なり、DdfGetFieldCommentsRefreshLocations をチェックしません。これは DDF からの情報を更新することだけを目的としているので、DDF から直接読み取ることを想定しています。
'フィールドの取得
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) + fields(6, i))
   Next i
End If
関連項目
FieldList
DdfModifyLocation
適用対象
VAccess
説明
現在のテーブルの場所を変更し、オプションとして DDF に新しい場所を書き込みます。
構文
object.DdfModifyLocation newLocation
DdfModifyLocation メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
newLocation
必須。テーブルの新しい場所を含む文字列です。
戻り値
DdfModifyLocation は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
RefreshLocationsTrue の場合、新しいテーブルの場所は、データ辞書の FILE.DDF レコードでも更新されます。False の場合は、VAccess メモリ イメージに対してのみ変更が行われます。DdfAddTable を使用して後から変更することもできます。
このメソッドにより、コントロールの Location プロパティの値も新しい場所を反映して変更されます。
DdfModifyLocation は自動的に Location プロパティを変更するので、DdfKeyUseIndexDDFOnlyFalse に設定されている場合は、現在の IndexList の内容をクリアして、新しい場所のインデックス情報を基に内容を置き換えます(まだファイルが存在していなければ、内容をクリアします)。新たなファイルを作成する場合は、DdfModifyLocation を呼び出す前ではなく、呼び出した後に IndexList プロパティを設定します。
VAEngine.RefreshLocations = True
VAEngine.TableName = tableName
VAEngine.DdfModifyLocation(newLocation)
関連項目
Location、RefreshLocations、DdfAddTable、DdfModifyTableName
DdfModifyTableName
適用対象
VAccess
説明
現在のテーブルの名前を変更し、オプションとして DDF に新たな名前を書き込みます。
構文
object.DdfModifyTableName newName
DdfModifyTableName メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
newName
必須。テーブルの新しい名前を含む文字列です。
戻り値
DdfModifyTableName は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
DdfModifyTableName は現在のテーブルを変更しません。要求された名前のテーブルが既に存在する場合はエラーとなります。現在のテーブルを変更するには、TableName プロパティを使用します。現在のテーブル一覧に新しい空のテーブルを追加するには、DdfAddTableName を使用します。
RefreshLocationsTrue の場合、新しいテーブル名は、データ辞書の FILE.DDF レコードでも更新されます。False の場合は、VAccess メモリ イメージに対してのみ変更が行われます。DdfAddTable を使用して後から変更することもできます。
このメソッドにより、コントロールの TableName プロパティの値も新しい名前を反映して変更されます。
関連項目
RefreshLocations、TableName、DdfAddTable、DdfAddTableName、DdfModifyLocation
DdfSetOwner
適用対象
VAccess
説明
辞書ファイルの Btrieve オーナー ネームをデフォルトのオーナー ネームとセキュリティ レベル(読み取り専用アクセスが可能)以外に設定する際に使用できます。オーナー ネーム パラメーターとセキュリティ レベル パラメーターは Btrieve の表記規則に準じます。
構文
object.DdfSetOwner(NewOwnerName, SecurityLevel)
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
newOwnerName
テーブルにオーナー ネームを割り当てるための文字列です。
SecurityLevel
セキュリティ レベルを表す整数です。
備考
次のセキュリティ レベル コードを DdfSetOwnerSecurityLevel パラメーターに渡すことができます。
 
コード
グローバル定数
説明
0
EXCLUSIVE
正しいオーナー ネームを指定しないとファイルを開くことができません。
1
READONLY
オーナー ネームを指定しないユーザーに対し、テーブルの表示は許可しますが、変更は許可しません。
2
EXCLUSIVE_ENCRYPT
正しいオーナー ネームを指定しないとファイルを開くことができません。データはファイル内で暗号化されます。
3
READONLY_ENCRYPT
オーナー ネームを指定しないユーザーに対し、テーブルの表示は許可しますが、変更は許可しません。データはファイル内で暗号化されます。
定数宣言は、GLOBAL.BAS ファイル(16 ビット Visual Basic の場合)、GLOBAL.BAS ファイル(Visual Basic の場合)、GLOBAL.PAS ファイル(Delphi の場合)および GLOBAL.H ファイル(Visual C++ の場合)に含まれます。アプリケーションでセキュリティ レベル定数を使用するには、これらのファイルのうち 1 つ、開発環境に適したファイルをプロジェクトに含めます。
Private Function SetDDFOwner(newOwner as String, _
securityLevel as Integer) as Integer
'続行するために確認が必要
VAEngine.RefreshLocations = True
'これを DDF に書き込む
status = VAEngine.DdfSetOwner(newOwner, _
securityLevel)
If status = 0 Then
msg = "DDF Password has been successfully" _
& " changed."
MsgBox msg, vbInformation
Else
msg = " Btrieve returned status " + _
CStr(status) + "."
MsgBox msg, vbExclamation
End If
End Function
DdfTestOwnerName
適用対象
VAccess
説明
辞書を開く際に使用するオーナー ネームを設定し、このオーナー ネームを使用して辞書が正常に開き、更新できるかどうかを判定します。
構文
object.DdfTestOwnerName ownerName
DdfTestOwnerName メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
ownerName
必須。辞書のテスト対象の新しいオーナー ネームです。これが空白の場合、DdfTestOwnerName は現在の辞書のオーナー ネームを使用します。
戻り値
DdfTestOwnerName は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。これがゼロの場合、現在の辞書のオーナー ネームを使用して辞書を開き、更新することができます。
備考
VAccess コントロールによって使用されるデフォルトの辞書のオーナー ネームは、通常、DDF ファイルを読み取りおよび更新用として開きます。ただし、一部の辞書ファイルではデフォルト以外のオーナー ネームになっている場合もあります。この場合は、DdfTestOwnerName を使用して辞書のオーナー ネームを設定し、DdfPath で指定される現在の辞書に対して、そのオーナー ネームをテストすることができます。
DdfTestOwnerName は最初に辞書を開こうとします。正常に開いたら、そのオーナー ネームでは更新が可能か、あるいは読み取り専用かを調べるために、最初のレコードの更新を試みます。返されたステータスは、そのオーナー ネームでファイルを開けるか、修正できるか、あるいはどちらもできないかを示します。
関連項目
DdfSetOwnerName
Delete
適用対象
VAccess
説明
現在のレコードを削除し、PSQL ステータス コードを整数値で返します。
構文
object.Delete
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。[適用対象]のオブジェクトを評価するオブジェクト式を表します。
備考
このメソッドは object に関連付けられているファイルから現在のレコードを削除し、そのオペレーションの PSQL ステータス コードを返します。戻り値がゼロであれば正常に実行されています。
メモ:ActiveX コントロールは、有効なカレンシーを維持するために Delete の後に GetNext オペレーションを試行します。
Dim stat As Integer
VAccess1.IndexNumber = 1 'msa_desc
VAccess1.FieldValue("msa_desc") = Text1.Text
stat = VAccess1.GetEqual
If stat = 0 Then
   stat = VAccess1.Delete
   If stat = 0 Then
      MsgBox "Deleted!"
   End If
Else
   MsgBox "Could not locate requested city"
End If
FormatFieldValue
適用対象
VAccess
説明
指定の書式文字列を使用して書式設定された現在のレコードのフィールドの値を返します。
構文
object.FormatFieldValue (fieldname, formatstring)
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
fieldname
object によって参照されるファイル内の有効なフィールドの名前です。
formatstring
このパラメーターは、数値、日付、時刻の値について、Visual Basic Format 関数と同じ書式文字列および標準書式名をサポートします。
備考
フィールドに書式が設定されている場合は、データ型に関わらず、そのフィールドの内容の値は必ず文字列として返されます(コンテナーは自動的にこれを String、Variant、AnsiString またはほかの種類の文字データに解釈します)。フィールドに書式が設定されていない場合、値はそのフィールドのデータ型と最も近いバリアント(Variant)として返されます。ほとんどのコントロール コンテナーは、バリアント(Variant)の戻り値を、文字列(Sting)より簡単、迅速に操作でき、インターナショナル化や書式の再設定を行うことができます。そのため、できれば書式設定されていないフィールドを取得することをお勧めします。
Label1.Caption = VAccess1.FieldValue("msa_desc")
Label2.Caption = _ VAccess1.FormatFieldValue("population", "##,###,###")
関連項目
FieldValue、RowColumnValue、Column
GetDirect
適用対象
VAccess
説明
ファイル内で物理位置を使用してレコードを取得し、PSQL ステータス コードを整数値で返します。
構文
object.GetDirect [vLockBias]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
vLockBias
省略可能。レコードを取得する際にセットするレコード ロックの種類を表す値です。デフォルトは 0 で、ロックなしです。次のいずれかの定数を指定できます。
Const BTO_SingleNoWait = 200
Const BTO_MultiNoWait = 400
備考
このメソッドは object に関連付けられているファイルから物理位置を使ってレコードを取得し、そのオペレーションの PSQL ステータス コードを返します。戻り値がゼロであれば正常に実行されています。
GetEqual
適用対象
VAccess
説明
現在のインデックスと正確に一致するレコードを取得し、PSQL ステータス コードを整数値で返します。
構文
object.GetEqual [vLockBias]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
vLockBias
省略可能。レコードを取得する際にセットするレコード ロックの種類を表す値です。デフォルトは 0 で、ロックなしです。次のいずれかの定数を指定できます。
Const BTO_SingleNoWait = 200
Const BTO_MultiNoWait = 400
備考
現在選択されているインデックス フィールドが、オペレーションの実行前にそのフィールドに指定された値と正確に一致する値を含んでいる、ファイル内の最初のレコードを取得します。
このメソッドを呼び出す前に、IndexNumber プロパティによって指定されるインデックスを構成するフィールドの値を設定します。キー フィールドが VA フィールド コントロールにバインドされている場合、その値はバウンド コントロールの内容を修正することによって設定されます。
これらの値をコードから設定するには、FieldValue プロパティを使用します。オペレーションのステータス コードはこのメソッドから返され、コントロールの Status プロパティにも設定されます。ステータスがゼロの場合は正常に実行されたことを示します。
オペレーションの実行が成功するには、キーのすべてのセグメント内のすべてのフィールド、すべてのバイトが同等である必要があります。ステータス コード 4 は、オペレーションの前にキー フィールドに設定された値が現在のインデックス パスで検出されなかったことを示します。オルタネート コレーティング シーケンス(ACS)が指定された文字列キーは、オルタネート コレーティング シーケンスを用いてキー値を解釈するとき、ファイル内にそのキー値とバイト単位で同等のものがある場合にレコードを返します。これは、大文字と小文字を区別しない文字列キーの場合も同じです。
If Check1.Value = 1 Then
   stat = VAccess1.GetEqual
Else
   stat = VAccess1.GetGreaterorEqual
End If
GetFirst
適用対象
VAccess
説明
現在のインデックス パスの最初のレコードを取得し、PSQL ステータス コードを整数値で返します。
構文
object.GetFirst [vLockBias]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
vLockBias
省略可能。レコードを取得する際にセットするレコード ロックの種類を表す値です。デフォルトは 0 で、ロックなしです。次のいずれかの定数を指定できます。
Const BTO_SingleNoWait = 200
Const BTO_MultiNoWait = 400
備考
このメソッドは、IndexNumber プロパティによって設定された、現在選択されているインデックス パスの最初のレコードを、object に関連付けられたファイルから取得します。オペレーションのステータス コードはこのメソッドから返され、コントロールの Status プロパティに設定されます。ステータスがゼロの場合は正常に実行されたことを示します。ステータス 9 は、現在のインデックス パスにはレコードがないことを示します。
Visual Basic では、リスト ボックスあるいはコンボ ボックスを追加するには GetFirst が必要です。
Orders.GetFirst
Orders.Init
Orders.GetNextExtended
GetGreater
適用対象
VAccess
説明
現在のインデックス パスのキーよりも大きい最初のレコードを取得し、PSQL ステータス コードを整数値で返します。
構文
object.GetGreater [vLockBias]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
vLockBias
省略可能。レコードを取得する際にセットするレコード ロックの種類を表す値です。デフォルトは 0 で、ロックなしです。次のいずれかの定数を指定できます。
Const BTO_SingleNoWait = 200
Const BTO_MultiNoWait = 400
備考
このメソッドは、現在選択されているインデックス フィールドが、オペレーションの実行前にそのフィールドに指定された値よりも大きい値を含んでいる最初のレコードを、コントロールに関連付けられたファイルから取得します。このオペレーションを実行する前に、IndexNumber プロパティで指定されたインデックスを構成するフィールドの値を設定する必要があります。
キー フィールドがフィールド コントロールにバインドされている場合、その値はバウンド コントロールの内容を修正することによって設定されます。これらの値をコードから設定するには、FieldValue プロパティを使用します。
オペレーションのステータス コードはこのメソッドから返され、コントロールの Status プロパティに設定されます。ステータスがゼロの場合は正常に実行されたことを示します。ステータス コード 9 は、ファイル内のレコードには、オペレーションの前に指定された値より大きいキー値のレコードがないことを示します。
'姓が S で始まる最初のレコードを検索する
Customers.IndexNumber = 1    '姓
Customers.FieldValue("last_name") = "S"
Customers.GetGreater
Select Case Customers.Status
   Case 0
      'レコードを取得したが、条件に一致するかテストする必要がある。
      'GetGreater メソッドはこのテストを行わない。
      'ファイルに "S" のレコードがない場合、このレコードは
      '"T"、"U"、"V" などである可能性がある。
      If Left$(Customers.FieldValue _
         ("last_name"), 1) = "S" Then
         MsgBox "Found: " & Customers.FieldValue _
         ("last_name")
      Else
         MsgBox "No record was found."
      End If
   Case Else
      MsgBox "No record was found."
End Select
GetGreaterOrEqual
適用対象
VAccess
説明
現在のインデックス パスのキーと等しいか、そのキーよりも大きい最初のレコードを取得し、PSQL ステータス コードを整数値で返します。
構文
object.GetGreaterOrEqual [vLockBias]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
vLockBias
省略可能。レコードを取得する際にセットするレコード ロックの種類を表す値です。デフォルトは 0 で、ロックなしです。次のいずれかの定数を指定できます。
Const BTO_SingleNoWait = 200
Const BTO_MultiNoWait = 400
備考
このメソッドは、現在選択されているインデックス フィールドが、オペレーションの実行前にそのフィールドに指定された値と等しいか、それよりも大きい値を含んでいる最初のレコードを、コントロールに関連付けられたファイルから取得します。
このメソッドを呼び出す前に、IndexNumber プロパティで指定されたインデックスを構成するフィールドの値を設定します。
キー フィールドがフィールド コントロールにバインドされている場合、その値はバウンド コントロールの内容を修正することによって設定されます。これらの値をコードから設定するには、FieldValue プロパティを使用します。
オペレーションのステータス コードはこのメソッドから返され、コントロールの Status プロパティに設定されます。ステータスがゼロの場合は正常に実行されたことを示します。ステータス コード 9 は、ファイル内のレコードには、オペレーションの前に指定されたキー値と等しいか、そのキー値より大きいキー値を持つレコードがないことを示します。
If Check1.Value = 1 Then
   stat = VAccess1.GetEqual
Else
   stat = VAccess1.GetGreaterorEqual
End If
GetLast
適用対象
VAccess
説明
現在のインデックス パスの最後のレコードを取得し、PSQL ステータス コードを整数値で返します。
構文
object.GetLast [vLockBias]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
vLockBias
省略可能。レコードを取得する際にセットするレコード ロックの種類を表す値です。デフォルトは 0 で、ロックなしです。次のいずれかの定数を指定できます。
Const BTO_SingleNoWait = 200
Const BTO_MultiNoWait = 400
備考
このメソッドは、IndexNumber プロパティによって設定された、現在選択されているインデックス パスの最後のレコードを、object に関連付けられたファイルから取得します。オペレーションのステータス コードはこのメソッドから返され、コントロールの Status プロパティに設定されます。ステータスがゼロの場合は正常に実行されたことを示します。ステータス コード 9 は、現在のインデックス パスにはレコードがないことを示します。
'最も新しい日付のレコードを取得する
Customers.IndexNumber = 3    '入力日
Customers.GetLast
GetLess
適用対象
VAccess
説明
キー フィールドに指定された値より小さい値を持つ現在のインデックス パスの最後のレコードを取得し、PSQL ステータス コードを整数値で返します。
構文
object.GetLess [vLockBias]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
vLockBias
省略可能。レコードを取得する際にセットするレコード ロックの種類を表す値です。デフォルトは 0 で、ロックなしです。次のいずれかの定数を指定できます。
Const BTO_SingleNoWait = 200
Const BTO_MultiNoWait = 400
備考
このメソッドは、現在選択されているインデックス フィールドが、オペレーションの実行前にそのフィールドに指定された値よりも小さい値を含んでいる最後のレコードを、コントロールに関連付けられたファイルから取得します。
このメソッドを呼び出す前に、IndexNumber プロパティで指定されたインデックスを構成するフィールドの値を設定します。キー フィールドがフィールド コントロールにバインドされている場合、その値はバウンド コントロールの内容を修正することによって設定されます。これらの値をコードから設定するには、FieldValue プロパティを使用します。
オペレーションのステータス コードはこのメソッドから返され、コントロールの Status プロパティに設定されます。ステータスがゼロの場合は正常に実行されたことを示します。ステータス コード 9 は、ファイル内のレコードには、オペレーションの前に指定された値より小さいキー値のレコードがないことを示します。
GetLessOrEqual
適用対象
VAccess
説明
キー フィールドに指定された値と等しいか、その値より小さい値を持つ現在のインデックス パスの最後のレコードを取得し、PSQL ステータス コードを整数値で返します。
構文
object.GetLessOrEqual [vLockBias]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
vLockBias
省略可能。レコードを取得する際にセットするレコード ロックの種類を表す値です。デフォルトは 0 で、ロックなしです。次のいずれかの定数を指定できます。
Const BTO_SingleNoWait = 200
Const BTO_MultiNoWait = 400
備考
このメソッドは、現在選択されているインデックス フィールドが、オペレーションの実行前にそのフィールドに指定された値と等しいか、それよりも小さい値を含んでいる最後のレコードを、コントロールに関連付けられたファイルから取得します。
このメソッドを呼び出す前に、IndexNumber プロパティで指定されたインデックスを構成するフィールドの値を設定します。キー フィールドがフィールド コントロールにバインドされている場合、その値はバウンド コントロールの内容を修正することによって設定されます。これらの値をコードから設定するには、FieldValue プロパティを使用します。
オペレーションのステータス コードはこのメソッドから返され、コントロールの Status プロパティに設定されます。ステータスがゼロの場合は正常に実行されたことを示します。ステータス コード 9 は、ファイル内のレコードには、オペレーションの前に指定されたキー値と等しいか、そのキー値より小さいキー値を持つレコードがないことを示します。
GetNext
適用対象
VAccess
説明
現在のインデックス パスの次のレコードを取得し、PSQL ステータス コードを整数値で返します。
構文
object.GetNext [vLockBias]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
vLockBias
省略可能。レコードを取得する際にセットするレコード ロックの種類を表す値です。デフォルトは 0 で、ロックなしです。次のいずれかの定数を指定できます。
Const BTO_SingleNoWait = 200
Const BTO_MultiNoWait = 400
備考
このメソッドは、IndexNumber プロパティによって設定された、現在選択されているインデックス パスの次のレコードを、そのコントロールに関連付けられたファイルから取得します。
このメソッドを呼び出す前に、インデックス パスに現在の位置を確立しておく必要があります。
オペレーションのステータス コードはこのメソッドから返され、コントロールの Status プロパティに設定されます。ステータスがゼロの場合は正常に実行されたことを示します。ステータス コード 9 は、現在のインデックス パスの現在のレコードには後続レコードがないことを示します。ステータス コード 8 は、そのメソッドを呼び出す前に、現在のレコード上に位置が確立されていなかったことを示します。
'日付が 1 年以上古いレコードをすべて削除する
Customers.IndexNumber = 0    '顧客番号
Customers.GetFirst
Do
   If DateDiff("yyyy", Now, _
      Customers.FieldValue("last_order_date")) > 0
      Customers.Delete
   End If
   Customers.GetNext
Loop While Customers.Status = 0
GetNextExtended
適用対象
VAccess
説明
現在のインデックス パスの次のレコードを Extended Fetch レコード セットとして取得し、PSQL ステータス コードを整数値で返します。
構文
object.GetNextExtended
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
備考
このメソッドはコントロールの ExtendedOps プロパティが False の場合、あるいは AutoModeTrue に設定されている場合はまったく効果がありません。
このメソッドは PSQL Get Next Extended オペレーションを実行します。その際、コントロールの現在のレコードとインデックス選択を使用して位置を確立し、SelectedRecords プロパティと SelectedFields プロパティに含まれる選択条件を使用します。
コントロールの IncludeCurrent プロパティが True の場合、Extended Fetch オペレーションは現在のレコードから開始します。このプロパティが False の場合、Extended Fetch オペレーションはレコード シーケンスの次のレコードから開始します。Init メソッドは自動的に IncludeCurrent プロパティを True に設定します。GetNextExtended メソッドは、自身が呼び出された後、IncludeCurrent プロパティを False に設定します。
オペレーションが正常に実行されたら、生成されたレコード セット値を Row プロパティと Column プロパティを介して利用できます。オペレーションから返された行数および列数は、Rows プロパティと Columns プロパティで入手できます。また、メソッドから返される PSQL ステータス コードは、Status プロパティで入手できます。ゼロ以外のステータス コードは、必ずしもレコードが返されなかったことを示すわけではありません。Rows プロパティの値をチェックし、戻された行数を判断してください。
このメソッドを呼び出す前に、任意のレコード選択条件とフィールド選択条件を SelectedRecords プロパティと SelectedFields プロパティに設定し、次に Init メソッドを呼び出して必要な要求バッファー構造体を割り当てることによって、先に Extended Fetch オペレーションのコントロールを設定しておく必要があります。GetFirstGetGreaterOrEqual などのインデックス付きレコード フェッチ メソッドを使用して、インデックス パスの現在のレコード位置を最初に設定することによって、Extended Fetch オペレーションを最適化することもできます。
VAccess コントロールの Extended オペレーション機能を有効にするには、ExtendedOps プロパティを True に設定する必要があります。
'Orders ファイルのレコードを読み取り、印刷する
Orders.GetFirst
Orders.Init
Do
   Orders.GetNextExtended
   For r = 1 to Orders.Rows
      For c = 1 to Orders.Columns
         Debug.Print Orders.RowColumnValue(r,c)
      Next c
      Debug.Print '新しい行
   Next r
Loop While Orders.Status = 0
GetPrevious
適用対象
VAccess
説明
現在のインデックス パスの前のレコードを取得し、PSQL ステータス コードを整数値で返します。
構文
object.GetPrevious [vLockBias]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
vLockBias
省略可能。レコードを取得する際にセットするレコード ロックの種類を表す値です。デフォルトは 0 で、ロックなしです。次のいずれかの定数を指定できます。
Const BTO_SingleNoWait = 200
Const BTO_MultiNoWait = 400
備考
このメソッドは、IndexNumber プロパティによって設定された、現在選択されているインデックス パスの前のレコードを、そのコントロールに関連付けられたファイルから取得します。
このメソッドを呼び出す前に、インデックス パスに現在の位置を確立しておく必要があります。
オペレーションのステータス コードはこのメソッドから返され、コントロールの Status プロパティに設定されます。ステータスがゼロの場合は正常に実行されたことを示します。ステータス コード 9 は、現在のインデックス パスの現在のレコードには後続レコードがないことを示します。ステータス コード 8 は、そのメソッドを呼び出す前に、現在のレコード上に位置が確立されていなかったことを示します。
GetPreviousExtended
適用対象
VAccess
説明
現在のインデックス パスの前のレコードを Extended Fetch レコード セットとして取得し、PSQL ステータス コードを整数値で返します。
構文
object.GetPreviousExtended
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
備考
このメソッドは PSQL Get Previous Extended オペレーションを実行します。その際、コントロールの現在のレコードとインデックス選択を使用して位置を確立し、SelectedRecords プロパティと SelectedFields プロパティに含まれる選択条件を使用します。
コントロールの IncludeCurrent プロパティが True の場合、Extended Fetch オペレーションは現在のレコードから開始します。このプロパティが False の場合、Extended Fetch オペレーションはレコード シーケンスの次のレコードから開始します。
オペレーションが正常に実行されたら、生成されたレコード セット値を Row プロパティと Column プロパティを介して利用できます。オペレーションから返された行数および列数は、Rows プロパティと Columns プロパティで入手できます。また、メソッドから返される PSQL ステータス コードは、Status プロパティで入手できます。
このメソッドを呼び出す前に、任意のレコード選択条件とフィールド選択条件を SelectedRecords プロパティと SelectedFields プロパティに設定し、次に Init メソッドを呼び出して必要な要求バッファー構造体を割り当てることによって、先に Extended Fetch オペレーションのコントロールを設定しておく必要があります。GetLastGetLessOrEqual などのインデックス付きレコード フェッチ メソッドを使用して、インデックス パスの現在のレコード位置を最初に設定することによって、Extended Fetch オペレーションを最適化することもできます。
このメソッドはコントロールの ExtendedOps プロパティが False の場合、あるいは AutoModeTrue に設定されている場合はまったく効果がありません。
GetTableList
適用対象
VAccess
説明
現在の辞書に定義されているテーブルのリストを 2 次元バリアント配列として返します。
構文
object.GetTableList
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
戻り値
GetTableList は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
FieldList プロパティは、2 次元バリアント配列をカプセル化するバリアントを受け付けます。あるいはそのバリアントを返します。最初の添字はフィールドの序数を参照し、2 番目の添字はフィールドの 1 つのプロパティを参照します。2 番目の添字が参照するプロパティは次のとおりです。
 
添字
名前
バリアント型
説明
0
tableID
VT_I2
ファイル テーブル辞書エントリ用の固有のキーです。
1
tableName
VT_BSTR
テーブル名です。最大半角 20 文字まで格納できます。
2
tableLocation
VT_BSTR
オペレーティング システムまたはネットワーク パスとテーブルによって参照されるデータ ファイルのファイル名です。最大半角 64 文字まで格納できます。
RefreshLocations プロパティが False の場合は、メモリにキャッシュされた最近のテーブル一覧が返されます。RefreshLocationsTrue の場合は、辞書から現在のテーブル一覧が再読み取りされます。このメソッドは FieldListIndexList とは違い、読み取りオペレーションしか行えず、更新は行えません。
VAEngine.RefreshLocation = True
VAEngine.DDFPath = path
tables = VAEngine.GetTableList
関連項目
FieldList、IndexList、RefreshLocations
GetTotalSegments
適用対象
VAccess
説明
VAccess コントロールに関連付けられているファイルの、特定のインデックスに含まれるセグメントの総数を返します。
GetTotalSegments は下位互換性を提供するために用意されています。ほとんどの場合、インデックス プロパティは IndexList プロパティを使用して迅速に、しかも簡単に操作できます。
構文
object.GetTotalSegments(keynumber)
GetTotalSegments メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
keynumber
必須。チェック対象のインデックス番号です。
NumSegments% = _ VAccess1.GetTotalSegments(VAccess1.KeyNumber)
Init
適用対象
VAccess
説明
PSQL Extended Fetch レコード セット オペレーションを実行する際に使用する構造体を、CacheRows プロパティ、CacheRejectMax プロパティ、SelectedFields プロパティ、および SelectedRecords プロパティから提供されるパラメーターに基づいて強制的に初期化します。
Init は、初期化後 Extended オペレーションを呼び出す前に、あるいは SelectedRecordsSelectedFieldsCacheRows、または CacheRejectMax が変更されたときに必ず実行する必要があります。
構文
object.Init
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
備考
AutoModeTrue に設定されている場合は、Init メソッドを呼び出すと、最初の Extended Fetch レコード セット オペレーション(GetNextExtended)も実行されます。このオペレーションは論理カレンシーを必要とします。論理カレンシーは、GetFirst、GetEqual などのインデックス付きのレコード オペレーションを呼び出すことによって設定できます。
VAccess コントロールの Extended オペレーション機能を有効にするには、ExtendedOps プロパティを True に設定する必要があります。
例 #1 - Automode = True
VAccess1.GetFirst
VAccess1.Init
例 #2 - Automode = False
Orders.GetFirst
Orders.Init
Orders.GetNextExtended
Insert
適用対象
VAccess
説明
現在のデータ バッファーを新規レコードとして挿入し、PSQL ステータス コードを整数値で返します。
構文
object.Insert
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
備考
このメソッドは object に関連付けられているファイルに現在のデータ バッファーを新規レコードとして挿入し、そのオペレーションの PSQL ステータス コードを返します。戻り値がゼロであれば正常に実行されています。戻り値が 5 の場合は、ファイルに定義されている重複値を許可しないキーに対して使用されているデータ バッファー内のフィールドが、ファイルに既存の別のレコードと同じ値を含んでいるため、レコードを挿入できなかったことを示します。
NNC(no-currency-change:カレンシー変更なし)操作を行いたい場合は、KeyNumber プロパティを使用します。
'レコードを検索し、そのレコードがない場合には挿入する
'検索値を設定する
Customers.FieldValue("name") = "John Adams"
'インデックスを設定し、検索を実行する
Customers.IndexNumber = 1    '顧客名
Customers.GetEqual
'レコードがない場合には挿入する
Select Case Customers.Status
Case 0
     MsgBox "The customer entry already exists."
Case 4
     Customers.Insert
Case Is > 0
     MsgBox "Error. PSQL status = " + _
        Customers.Status
End Select
Open
適用対象
VAccess
説明
コントロールに関連付けられているファイルを開き、PSQL ステータス コードを整数値で返します。
構文
object.Open
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
備考
このメソッドは object に関連付けられているファイルを開こうとします。ファイルが既に開いている場合は、先に閉じてから再度開きます。オペレーションのステータス コードはこのメソッドから返され、コントロールの Status プロパティに設定されます。ステータスがゼロの場合は正常に実行されたことを示します。
If index > -1 Then 'リストから選択済み
   VAccess1.Close
   VAccess1.TableName = Combo1.List(index)
   VAccess1.Open
End If
Refresh
適用対象
Vaccess、VACombo、VAList
説明
関連オブジェクトを強制的に即時更新します。
'データ バッファーの内容を用いてバウンド コントロールをリフレッシュする
VAccess1.Refresh
RemoveItem
適用対象
VACombo、VAList
説明
フィールド バウンド モードで動作している VAList コントロールまたは VACombo コントロールから項目を削除します。
構文
object.RemoveItem index
RemoveItem メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。[適用対象]のオブジェクトを評価するオブジェクト式です。
index
必須。object における削除対象項目の位置を表す整数です。VAList コントロールまたは VACombo コントロールの最初の項目の場合、index = 0 です。
備考
レコード リスト モードで動作している(VARecordList プロパティが True に設定されている)VAList コントロールまたは VACombo コントロールは、RemoveItem メソッドをサポートしません。
RowColumnValue
適用対象
VAccess
説明
Extended Fetch レコード セットの中から、指定された Row および Column を基にフィールド値を返します。
構文
object.RowColumnValue (row, column)
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
row
必須。Extended Fetch レコード セット内の有効な行を指定します。
column
必須。Extended Fetch レコード セット内の有効な列を指定します。
備考
このメソッドは、Row プロパティと Column プロパティを使って Extended Fetch レコード セットからフィールド データを取得する方法のショートカットとして使用します。
VAccess コントロールの Extended オペレーション機能を有効にするには、ExtendedOps プロパティを True に設定する必要があります。
'Extended Fetch レコード セットのすべての行を印刷する
For rowcount = 1 To Orders.Rows
For colcount = 1 To Orders.Columns
   Debug.Print Orders.RowColumnValue(rowcount, colcount)
Next colcount
Debug.Print "" '新しい行
Next rowcount
SetFileFlag
適用対象
VAccess
説明
Create メソッドを使って Btrieve ファイルを作成する前に、指定されたファイル フラグを設定します。
構文
object.SetFileFlag(flag, setting)
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
flag
必須。設定するファイル フラグです。
setting
必須。フラグの設定を指定します。True または False を指定することができます。
備考
定数宣言は、GLOBAL.BAS ファイル(Visual Basic の場合)、GLOBAL.PAS ファイル(Delphi の場合)および GLOBAL.H ファイル(Visual C++ の場合)に含まれます。アプリケーションでファイル フラグ定数を使用するには、これらのファイルのうち 1 つ、開発環境に適したファイルをプロジェクトに含めます。
Stat = VAccess1.SetFileFlag(BTF_fTruncate, False)
Stat = VAccess1.SetFileFlag(BTF_fDataCompression, False)
Stat = VAccess1.SetFileFlag(BTF_fKeyOnly, False)
Stat = VAccess1.SetFileFlag(BTF_fPreallocate, False)
VAccess1.PageSize = 0
Stat = VAccess1.DdfCreateTable(True)
SetOwner
適用対象
VAccess
説明
SetOwner メソッドは、PSQL テーブルへのアクセスを制限するために、そのテーブルのオーナー ネームを指定する場合に使用されます。
構文
object.SetOwner(OwnerName, SecurityLevel)
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
OwnerName
テーブルに割り当てるオーナー ネームです。
SecurityLevel
セキュリティ レベルを表す整数です。
備考
次のセキュリティ レベル コードを SetOwnerSecurityLevel パラメーターに渡すことができます。
 
コード
グローバル定数
説明
0
EXCLUSIVE
正しいオーナー ネームを指定しないとファイルを開くことができません。
1
READONLY
オーナー ネームを指定しないユーザーに対し、テーブルの表示は許可しますが、変更は許可しません。
2
EXCLUSIVE_ENCRYPT
正しいオーナー ネームを指定しないとファイルを開くことができません。データはファイル内で暗号化されます。
3
READONLY_ENCRYPT
オーナー ネームを指定しないユーザーに対し、テーブルの表示は許可しますが、変更は許可しません。データはファイル内で暗号化されます。
定数宣言は、GLOBAL.BAS ファイル(16 ビット Visual Basic の場合)、GLOBAL.BAS ファイル(Visual Basic の場合)、GLOBAL.PAS ファイル(Delphi の場合)および GLOBAL.H ファイル(Visual C++ の場合)に含まれます。アプリケーションでセキュリティ レベル定数を使用するには、これらのファイルのうち 1 つ、開発環境に適したファイルをプロジェクトに含めます。
PSQL テーブルからオーナー ネームを削除するには、まずそのオーナー ネームでテーブルを開き、次に Btrv メソッドに BTO_ClearOwner オペレーションを発行します。
この値は辞書ファイルにアクセスする際に使用するオーナー ネームには影響しません。一連の辞書ファイルのオーナー ネームを変更する場合は、DdfSetOwner を使用します。
関連項目
OwnerName、DdfSetOwner、DdfTestOwnerName
ShowSelectedFieldsDlg
適用対象
VAccess
説明
このメソッドを呼び出すと、[Extended Query Field Selection](拡張クエリ フィールド選択)ダイアログ ボックスが表示され、ここからユーザーは実行時に SelectedFields プロパティを変更できます。
構文
object.ShowSelectedFieldsDlg
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
備考
Extended Fetch のレコードあるいはフィールド選択基準を変更した後、GetNextExtended などの Extended Fetch メソッドを呼び出す前には、Init メソッドを呼び出す必要があります。
VAccess コントロールの Extended オペレーション機能を有効にするには、ExtendedOps プロパティを True に設定する必要があります。
'取得するフィールドをユーザーが選択できるようにする
Customers.ShowSelectedFieldsDlg "Field Selection"
 
'現在のレコードの位置を再確立し、
'Extended オペレーション バッファーを
'新しいフィールド選択リストで初期化する
Customers.GetFirst
Customers.Init
Customers.GetNextExtended
ShowSelectedRecordsDlg
適用対象
VAccess
説明
このメソッドを呼び出すと、[Extended Query Record Selection](拡張クエリ レコード選択)ダイアログ ボックスが表示され、ここからユーザーは実行時に SelectedRecords プロパティを変更できます。
構文
object.ShowSelectedRecordsDlg
ShowSelectedRecordsDlg メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
備考
Extended Fetch のレコードあるいはフィールド選択基準を変更した後、GetNextExtended などの Extended Fetch メソッドを呼び出す前には、Init メソッドを呼び出す必要があります。
VAccess コントロールの Extended オペレーション機能を有効にするには、ExtendedOps プロパティを True に設定する必要があります。
'レコードの選択基準をユーザーが選択できるようにする
Customers.ShowSelectedRecordsDlg "Record Selection"
 
'現在のレコードの位置を再確立し、
'Extended オペレーション バッファーを
'新しいレコード選択基準で初期化する
Customers.GetFirst
Customers.Init
Customers.GetNextExtended
Stat
適用対象
VAccess
説明
現在のテーブルのステータス バッファーを強制的にリフレッシュします。
構文
object.Stat
Stat メソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。有効な VAccess コントロールの名前です。
戻り値
Stat は、VAccess コントロールのステータスを保持する 2 バイトの整数を返します。この値がゼロの場合、オペレーションは正常に終了しています。
備考
Stat はステータス バッファーの更新を強制します。これによって PageSizeTotalKeysPercentFreeSpacePreallocatedPagesReservedDupPointersACSNameCollatingSequenceFileVersion などのファイル パラメーターとファイル フラグが更新されます。Stat は、DdfKeyUseIndexDDFOnlyFalse に設定されている場合は、ステータス バッファーのインデックス情報も更新します。TotalRecords プロパティを取得する前に Stat を呼び出す必要はありません。要求時に TotalRecordsStat 呼び出しを実行します。
StatusDialog
適用対象
VAccess
説明
このメソッドを呼び出すと、実行時にゼロ以外の数値に設定される場合、タスク モードのメッセージ ボックスが表示されます。一般的な PSQL ステータス コードには説明が付きますが、あまり一般的でないステータス コードや認識されないステータス コードは報告されるだけです。
構文
object.StatusDialog [status]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
status
省略可能。整数値です。値を指定しない場合は、Status プロパティの現在値が使用されます。
If stat = 0 Then
   Text1.Text = VAccess1.FieldValue("msa_desc")
   Text2.Text = _
   VAccess1.GetFieldValue("population", "##,###,###")
   Text3.Text = VAccess1.FieldValue(2)
Else
   VAccess1.StatusDialog stat
End If
StepFirst
適用対象
VAccess
説明
物理レコードの格納順で最初のレコードを取得し、PSQL ステータス コードを整数値で返します。
構文
object.StepFirst [vLockBias]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
vLockBias
省略可能。レコードを取得する際にセットするレコード ロックの種類を表す値です。デフォルトは 0 で、ロックなしです。次のいずれかの定数を指定できます。
Const BTO_SingleNoWait = 200
Const BTO_MultiNoWait = 400
備考
このメソッドは、物理レコードが格納されている順で最初のレコードを object に関連付けられたファイルから取得します。オペレーションのステータス コードはこのメソッドから返され、コントロールの Status プロパティに設定されます。ステータスがゼロの場合は正常に実行されたことを示します。ステータス 9 は、ファイルにレコードがないことを示します。
StepLast
適用対象
VAccess
説明
物理レコードの格納順で最後のレコードを取得し、PSQL ステータス コードを整数値で返します。
構文
object.StepLast [vLockBias]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
vLockBias
省略可能。レコードを取得する際にセットするレコード ロックの種類を表す値です。デフォルトは 0 で、ロックなしです。次のいずれかの定数を指定できます。
Const BTO_SingleNoWait = 200
Const BTO_MultiNoWait = 400
備考
このメソッドは、物理レコードが格納されている順で最後のレコードを object に関連付けられたファイルから取得します。オペレーションのステータス コードはこのメソッドから返され、コントロールの Status プロパティに設定されます。ステータスがゼロの場合は正常に実行されたことを示します。ステータス 9 は、ファイルにレコードがないことを示します。
StepNext
適用対象
VAccess
説明
物理レコードの格納順で次のレコードを取得し、PSQL ステータス コードを整数値で返します。
構文
object.StepNext [vLockBias]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
vLockBias
省略可能。レコードを取得する際にセットするレコード ロックの種類を表す値です。デフォルトは 0 で、ロックなしです。次のいずれかの定数を指定できます。
Const BTO_SingleNoWait = 200
Const BTO_MultiNoWait = 400
備考
このメソッドは、物理レコードが格納されている順で次のレコードを object に関連付けられたファイルから取得します。オペレーションのステータス コードはこのメソッドから返され、コントロールの Status プロパティに設定されます。ステータスがゼロの場合は正常に実行されたことを示します。戻り値 9 は、ファイルの最後に達したことを示します。戻り値 8 は、このメソッドが呼び出される前に現在のレコード位置が確立されていなかったことを示します。
StepNextExtended
適用対象
VAccess
説明
ファイルから物理レコードの格納順で次のレコードを Extended Fetch レコード セットとして取得し、PSQL ステータス コードを整数値で返します。
構文
object.StepNextExtended
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
備考
このメソッドは PSQL Step Next Extended オペレーションを実行します。その際、現在のレコードを使用して開始位置を確立し、SelectedRecords プロパティと SelectedFields プロパティに含まれる選択条件を使用します。
コントロールの IncludeCurrent プロパティが True の場合、Extended Fetch オペレーションは現在のレコードから開始します。このプロパティが False の場合、Extended Fetch オペレーションはレコード シーケンスの次のレコードから開始します。
オペレーションが正常に実行されたら、生成されたレコード セット値を Row プロパティと Column プロパティを介して利用できます。オペレーションから返された行数および列数は、Rows プロパティと Columns プロパティで入手できます。また、メソッドから返される PSQL ステータス コードは、Status プロパティで入手できます。
このメソッドを呼び出す前に、任意のレコード選択条件とフィールド選択条件を SelectedRecords プロパティと SelectedFields プロパティに設定し、次に Init メソッドを呼び出して必要な要求バッファー構造体を割り当てることによって、先に Extended Fetch オペレーションのコントロールを設定しておく必要があります。StepFirst などのシングル レコード フェッチ メソッドを使用して、ファイルの現在のレコード位置を先に設定することもできます。
このメソッドはコントロールの ExtendedOps プロパティが False の場合、あるいは AutoModeTrue に設定されている場合はまったく効果がありません。
StepPrevious
適用対象
VAccess
説明
物理レコードの格納順で前のレコードを取得し、PSQL ステータス コードを整数値で返します。
構文
object.StepPrevious [vLockBias]
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
vLockBias
省略可能。レコードを取得する際にセットするレコード ロックの種類を表す値です。デフォルトは 0 で、ロックなしです。次のいずれかの定数を指定できます。
Const BTO_SingleNoWait = 200
Const BTO_MultiNoWait = 400
備考
このメソッドは、物理レコードが格納されている順で前のレコードを object に関連付けられたファイルから取得します。オペレーションのステータス コードはこのメソッドから返され、コントロールの Status プロパティに設定されます。ステータスがゼロの場合は正常に実行されたことを示します。戻り値 9 は、ファイルの最初に達したことを示します。戻り値 8 は、このメソッドが呼び出される前に現在のレコード位置が確立されていなかったことを示します。
StepPreviousExtended
適用対象
VAccess
説明
ファイルから物理レコードの格納順で前のレコードを Extended Fetch レコード セットとして取得し、PSQL ステータス コードを整数値で返します。
構文
object.StepPreviousExtended
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
備考
このメソッドは PSQL Step Previous Extended オペレーションを実行します。その際、現在のレコードを使用して開始位置を確立し、SelectedRecords プロパティと SelectedFields プロパティに含まれる選択条件を使用します。
コントロールの IncludeCurrent プロパティが True の場合、Extended Fetch オペレーションは現在のレコードから開始します。このプロパティが False の場合、Extended Fetch オペレーションはレコード シーケンスの次のレコードから開始します。
オペレーションが正常に実行されたら、生成されたレコード セット値を Row プロパティと Column プロパティを介して利用できます。オペレーションから返された行数および列数は、Rows プロパティと Columns プロパティで入手できます。また、メソッドから返される PSQL ステータス コードは、Status プロパティで入手できます。
このメソッドを呼び出す前に、任意のレコード選択条件とフィールド選択条件を SelectedRecords プロパティと SelectedFields プロパティに設定し、次に Init メソッドを呼び出して必要な要求バッファー構造体を割り当てることによって、先に Extended Fetch オペレーションのコントロールを設定しておく必要があります。StepLast などの単一レコード フェッチ メソッドを使用して、ファイルの現在のレコード位置を先に確立することもできます。
このメソッドはコントロールの ExtendedOps プロパティが False の場合、あるいは AutoModeTrue に設定されている場合はまったく効果がありません。
Transaction
適用対象
VAccess
説明
Transaction 関数は、アプリケーション内での PSQL トランザクション処理を制御します。PSQL トランザクションを開始、終了、中止する場合に使用できます。
構文
object.Transaction iOperationCode
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
メモ:このプレースホルダーは ActiveX アーキテクチャの要件にすぎず、object に接続されているファイルのトランザクションの適用範囲を制限するものではありません。トランザクションの開始メソッドと終了メソッドの間にネストされた、ファイルの挿入、更新、削除はすべてトランザクションに含まれます。
iOperationCode
必須。実行するトランザクション操作を指定します。
備考
トランザクション処理は PSQL レコード マネージャーのデータ整合性機能です。その目的は、さまざまなテーブルに関連する一連の更新作業において、すべての更新を正常に実行するか、またはすべての更新をロール バックして、参照整合性を確実に保つことです。
Transaction メソッドでサポートされる操作は次のとおりです。ここに挙げられていないオペレーション コードに対してはステータス コード 1、無効なオペレーションが返されます。
 
コード
定数
説明
19
BTO_BeginTransaction
排他トランザクションを開始します。ほかのプロセスはこのトランザクションが終了しない限り、トランザクションに関与しているファイルにアクセスできません。
20
BTO_EndTransaction
トランザクションを終了し、そのトランザクションが開始してからファイルに対して行われた変更をコミットします。
21
BTO_AbortTransaction
Begin Transaction オペレーションの開始以後にファイルに対して行われた変更を破棄し、トランザクションを終了します。
1019
BTO_BeginTransaction + 1000
並行トランザクションを開始します(Pervasive.SQL バージョン 6 以降に対応 - それより前のバージョンでは、ステータス コード 1 を返します)。ほかのプロセスも、トランザクションによって影響を受けるファイルにアクセスできます。
定数宣言は、GLOBAL.BAS ファイル(16 ビット Visual Basic の場合)、GLOBAL.BAS ファイル(Visual Basic の場合)、GLOBAL.PAS ファイル(Delphi の場合)および GLOBAL.H ファイル(Visual C++ の場合)に含まれます。アプリケーションで Transaction 定数を使用するには、これらのファイルのうち 1 つ、開発環境に適したファイルをプロジェクトに含めます。
'並行トランザクションを開始する
status% = Customers.Transaction(BTO_BeginTransaction + 1000)
 
If status% = 0 Then
'BeginTransaction は正常終了
'注文レコードを追加する
status% = status% + Orders.Insert
 
'請求レコードを追加する
status% = status% + Invoices.Insert
 
'顧客レコードを取得して修正する
Customers.IndexNumber = 1 '顧客 ID
Customers.FieldValue("custID") = _ Invoices.FieldValue("custID")

status% = status% + Customers.GetEqual
Customers.FieldValue("lastInvoiceDate") = _ Invoices.FieldValue("InvoiceDate")

balance = Customers.FieldValue("balance") + _ Invoice.FieldValue("amount")

Customers.FieldValue("balance") = balance
status% = status% + Customers.Update
End If
 
If status% = 0 Then
'すべての変更が正常に終了。トランザクションをコミットする。
Customers.Transaction(BTO_EndTransaction)
Else
'1 つまたは複数の挿入に失敗。トランザクションを中止する。
Customers.Transaction(BTO_AbortTransaction)
End If
Unlock
適用対象
VAccess
説明
Btrv メソッドに渡される Get または Step オペレーション コードにロック バイアス コードを加算することによって PSQL テーブルのレコードにセットされた、単一レコード ロックおよび複数レコード ロックを解除します。
構文
object.Unlock (iLockType)
このメソッドの構文は次のような要素で構成されます。
 
要素
説明
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
iLockType
必須。削除対象となるレコード ロックの種類です。
備考
Unlock メソッドに渡すことができるロック タイプのコードは次のとおりです。
 
要素
定数
説明
0
UL_Single
現在のレコードから単一レコード ロックを削除します。
-1
UL_CurrentMultiple
現在のレコードから複数レコード ロックを削除します。
-2
UL_AllMultiple
テーブル内のロックされているレコードからすべての複数レコード ロックを削除します。
定数宣言は、GLOBAL.BAS ファイル(16 ビット Visual Basic の場合)、GLOBAL.BAS ファイル(Visual Basic の場合)、GLOBAL.PAS ファイル(Delphi の場合)および GLOBAL.H ファイル(Visual C++ の場合)に含まれます。アプリケーションで Unlock 定数を使用するには、これらのファイルのうち 1 つ、開発環境に適したファイルをプロジェクトに含めます。
Update
適用対象
VAccess
説明
現在のレコードを現在のデータ バッファーの内容で更新し、PSQL ステータス コードを整数値で返します。
構文
object.Update
このメソッドの構文は次のような要素で構成されます。
 
要素
定数
object
必須。object プレースホルダーは、[適用対象]のオブジェクトを評価するオブジェクト式を表します。
備考
このメソッドは object に関連付けられているファイルの現在のレコードを現在のデータ バッファーの内容で更新し、そのオペレーションの PSQL ステータス コードを返します。戻り値がゼロであれば正常に実行されています。
戻り値が 5 の場合は、ファイルに定義されている重複値を許可しないキーに対して使用されているデータ バッファー内のフィールドが、ファイルに既存の別のレコードと同じ値を含んでいるため、レコードを更新できなかったことを示します。戻り値が 80 の場合は、矛盾が発生したことを示します。つまり、そのレコードは読み込まれた時点から Update メソッドが呼び出された時点までの間に、別のプロセスによって更新されているということです。
NNC(no-currency-change:カレンシー変更なし)操作を行いたい場合は、KeyNumber プロパティを使用します。
'レコードを検索し、会社名を変更して、レコードを更新する
'検索値を設定する
Customers.FieldValue("name") = "John Harbison"
 
'インデックスを設定し、検索を実行する
Customers.IndexNumber = 1
Customers.GetEqual
 
'レコードが存在する場合は、会社名を変更して、
'レコードを更新する
Select Case Customers.Status
Case 0
     Customers.FieldValue("company_name") = _
        "Harbison Consulting"
     Customers.Update
Case 4
     MsgBox "Record not found."
Case Else
     MsgBox "Error. PSQL status = " + _
        Customers.Status
End Select