愚者の経験

「また今度」はほとんどこない

切断したレコードセットとバッチ更新モード

参考URL:http://blogs.msdn.com/b/nakama/archive/2008/10/16/ado.aspx

ADOのRecordsetをフォームに利用1で少しこの件について書いたが自分には重要なのでメモ。

切断型のレコードセットの作り方
1. RecordsetのOpen前に「CursorLocation」にadUseClient(=3)を設定する

 
rs.CursorLovation = adUseClient
 

2. RecordsetのOpen後に「ActiveConnection」をNothingする

set rs.CursorLovation = Nothing
 

結構簡単ですがこれでデータソースから切り離されたRecordsetの完成です。

次にバッチ更新についてですがこれは「バッチ更新モード」というもので
基本Recordsetは「即時更新モード」で動きUpdateメソッド等でデータベースが「即」更新されます。
(ウチの会社ではこれしか使ってなかった)

これに対し「バッチ更新モード」は変更を溜めてUpdateBatchメソッドで一気にデータベースを更新します。
切断型のレコードセットを使うのに1行更新するごとにデータベースに繋ぐのでは
あまり意味が無いので大雑把かもしれませんが私は

・接続型レコードセットは「即時更新モード」
・切断型レコードセットは「バッチ更新モード」

更新が必要な場合はこのように動かすといいと思っています。

「バッチ更新モード」にするにはRecordsetの「RockType」をadLockBatchOptimistic(=4)に設定する
Open前に設定する場合

 
rs.LockType = adLockBatchOptimistic
 

Open時に設定する場合(第4引数にLockTypeオプションがある)

 
rs.Open , Conn, adOpenStatic, adLockBatchOptimistic

切断したレコードセットの変更をデータソースに書きこむには
1. Recordsetの「ActiveConnection」にアクティブなConnectionを設定する

Conn.Open
rs.ActiveConnection = Conn

2. UpdateBatchメソッドを実行する

rs.UpdateBatch
 

これらの基本操作をしっかり覚えておく。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。