前の章では、ADO を使用してデータ ソース内のデータを取得する方法、データ内を移動する方法、データを編集する方法についても説明しました。 もちろん、ユーザーがデータを変更できるようにすることがアプリケーションの目的である場合は、それらの変更を保存する方法を理解する必要があります。 Save メソッドを使用して、Recordset の変更をファイルに保持するか、Update または UpdateBatch メソッドを使用して、変更を保存用のデータ ソース に戻すことができます。
前の章では、Recordsetの複数行のデータを変更しました。 ADO では、データ行の追加、削除、および変更に関連する 2 つの基本的な概念がサポートされています。
最初の概念は、Recordsetに対する変更が直ちに行われるわけではないということです。代わりに、内部 コピー バッファーに対して行われます。 変更を行わないと判断した場合、コピー バッファー内の変更は破棄されます。 変更を保持する場合は、コピー バッファーの変更が Recordsetに適用されます。
2 つ目の概念は、作業が1行の完了時に宣言されるとすぐに変更がデータ ソースに反映されるか (つまり、即時モード)、またはセットの作業が完了するまで行セットに対するすべての変更が収集されるか (つまり、バッチモード) です。 LockType プロパティは、基になるデータ ソースに変更を加えるタイミングを決定します。 adLockOptimistic または adLockPessimistic はイミディエイト モードを指定し、adLockBatchOptimistic はバッチ モードを指定します。 CursorLocation プロパティは、使用可能な LockType 設定に影響を与える可能性があります。 たとえば、CursorLocation プロパティが adUseClient に設定されている場合、adLockPessimistic 設定はサポートされません。
即時モードでは、Update メソッドを呼び出すたびに、変更がデータ ソースに反映されます。 バッチ モードでは、Update の呼び出しまたは現在の行位置の移動のたびに変更がコピー バッファーに保存されますが、UpdateBatch メソッドのみが変更をデータ ソースに反映します。
このセクションには、次のトピックが含まれています。