VBScript - 切断型のレコードセットの作り方
VBScript - 切断型のレコードセットの作り方
レコードセットは明示的にクローズしない限り、データベースとの接続を維持する。
しかし SELECT 文の結果を格納するようなケースであれば、クライアント側でデータを保持するようにし、接続を切断してしまう方がよい。
そうした方が取得したデータを参照するときにネットワーク接続がなくてもよいし、サーバーの負荷も少なくなる。
データベースと接続されていないレコードセットのことを切断型レコードセットと言う。
切断型レコードセットを作るには次のようにする。
- CursorLocation プロパティに adUseClient を設定する
- このプロパティは Connection、Recordset が持っている。どちらかに設定すれば OK
- レコードセットにデータが格納されたら、Recordset.ActiveConnection に Nothing を設定する
Recordset.CursorLocation に adUseClient を設定する例
Dim rst
Set rst = CreateObject("ADODB.Recordset")
'★adUseClientを設定
rst.CursorLocation = 3
'DEPT 表の DEPTNO, DNAME, LOC カラムを取得する
rst.Open "select DEPTNO, DNAME, LOC from DEPT order by DEPTNO", "Provider=OraOLEDB.Oracle;User ID=scott;Password=tiger;Data Source=ORCL;"
'★接続を切断する
Set rst.ActiveConnection = Nothing
'この時点でデータベースとの接続は切断されている。
'あとはご自由に。
Connection.CursorLocation に adUseClient を設定する例
Dim conn
Set conn = CreateObject("ADODB.Connection")
'★adUseClientを設定
conn.CursorLocation = 3
conn.Open "Provider=OraOLEDB.Oracle;User ID=scott;Password=tiger;Data Source=ORCL;"
Dim rst
Set rst = CreateObject("ADODB.Recordset")
'DEPT 表の DEPTNO, DNAME, LOC カラムを取得する
rst.Open "select DEPTNO, DNAME, LOC from DEPT order by DEPTNO", conn
'★接続を切断する
Set rst.ActiveConnection = Nothing
'この時点でレコードセットは切断されている
If conn.State <> 0 Then
conn.Close
End If
Set conn = Nothing
アカウントを作成 して、もっと沢山の記事を読みませんか?
この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。
この記事にコメントをしてみませんか?