ADO를 사용하여 레코드셋을 생성시에는 DB의 컨넥션을 사용한다. 그런데 변경되지 않은 고정된 값만 갇는 레코드셋이라면 실행할때마다 굳이 DB에 접근할 필요는 없다. 리소스만 낭비할 뿐이나. 이럴때사용할수 있는 방법이 가상 레코드셋이다.
아래는 DB에 접근하여 레코드셋을 생성한 후에 파일로 저장하고, 컨넥션과 레코드셋을 닫은 후에, 컨넥션 없이 이전의 저장된 파일로 레코드셋만을 생성한 예이다.
' ADO 사용 우선 ADO를 사용하여 DB 컨넥션을 만들고 레코드셋을 생성한다음, 그 레코드셋을 파일로 저장한 후
' 컨넥션과 레코드셋을 닫고, 파일로부터 레코드셋을 생성한 예로 컨넥션이 없어도 레코드셋 독작적으로 유지할수 있다.
' 변경되지 않는 레코드셋이라면 DB에 연결하여 접근하는 것보다, 생성시만 DB에 접근하여 파일을 생성하고
' 그 다음부터는 파일에 접근하므로서, DB 접근에 의한 리소스를 줄일수 있다.
Option Explicit
Private Sub Command1_Click() ' 컨넥션이 있는 레코드셋 생성
Dim cn As Connection
Dim rs As Recordset
Set cn = New Connection
Set rs = New Recordset
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\LJJ\바탕 화면\새 폴더\db2.mdb;Persist Security Info=False"
cn.Open
rs.Open "recfile", cn
Debug.Print rs.ActiveConnection Is Nothing
rs.Save
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
Private Sub Command2_Click() ' 컨넥션이 없는 레코드셋 생성
Dim rs As Recordset
Set rs = New Recordset
rs.Open "recfile"
Debug.Print rs.ActiveConnection Is Nothing
rs.Close
Set rs = Nothing
End Sub
Command1은 DB의 컨넥션을 사용한 레코드셋이고
Command2는 DB의 컨넥션 없이 이전의 저장된 파일에서 레코드셋이다.
'VB6' 카테고리의 다른 글
vb6에서 정규식으로 문자열을 찾자. (0) | 2011.09.16 |
---|---|
소수를 분수로 바꾸기 (0) | 2011.09.16 |
유니코드 한글 초성,중성,종성 분리 (0) | 2011.09.09 |
가상 레코드셋(컨넥션이 없이 레코드셋 구조 생성) (0) | 2011.09.08 |
유니코드, ANSI코드 확인 (0) | 2011.09.06 |