Web/ASP & ASP.NET2009. 4. 10. 23:54

< 출처 : korea.internet.com, 지은이 : 최현진 >

Dynamic Recordset 기능은 Recordset 개체를 데이터 원본과의 연결이 없는 상태에서 생성할 수 있다.

이 방식은 텍스트 파일 같은 Non-Relational 데이터를 마치 Relational 데이터의 레코드셋처럼 구현할 때 유용하게 사용되는 방식이다.

이 방식을 사용하면 호스트에서 내려 받은 텍스트 파일을 비주얼 베이직에서 쉽게 조작할 수 있다.

Dynamic Recordset을 생성할 경우에는 Recordset 개체의 CursorLocation 속성, CursorType 속성, 또는 LockType 속성과 같은 데이터 원본과의 관계를 나타내는 속성들에 의해 영향을 받지 않기 때문에 이런 속성들을 디폴트 값으로 사용해도 가능하다.

동적으로 Recordset 개체를 생성하고, 화면에 표시하는 예제를 Dynamic Recordset으로 작성한다.

비주얼 베이직에서 새로운 프로젝트를 시작하고, 폼을 추가해서 다음과 같이 디자인한다.



[그림] Dynamic Recordset 예제 화면


개체 속성
Form Name frmDynamicRs
Caption Dynamic Recordset
CommandButton Name cmdCreateRs
Caption Create Recordset
MSHFlexGrid Name Grid


ADO를 사용하기 위해 비주얼 베이직의 프로젝트 메뉴의 참조에서 Microsoft ActiveX Data Objects 2.5 Library를 참조하고, MSHierachicalFlexGrid를 사용하기 위해 비주얼 베이직 프로젝트 메뉴의 구성요소에서 Microsoft Hierachical FlexGrid Control 6.0을 선택한다.

폼의 코드 모듈에 다음과 같이 코드를 작성한다.

Option Explicit

Dim adoRs As ADODB.Recordset

Private Sub cmdCreateRs_Click()
  Set adoRs = New Recordset

  adoRs.Fields.Append "Code", adInteger
  adoRs.Fields.Append "Name", adChar, 20

  adoRs.Open

  adoRs.AddNew Array("Code", "Name"), Array(1, "Chris")
  adoRs.AddNew Array("Code", "Name"), Array(2, "Hans")
  adoRs.AddNew Array("Code", "Name"), Array(3, "Beens")
  adoRs.AddNew Array("Code", "Name"), Array(4, "Christin")

  Set Grid.DataSource = adoRs
End Sub

예제 응용 프로그램을 실행하고 Create Recordset 버튼을 클릭해서 동적으로 Recordset 개체를 생성하고 MSHFlexGrid에 바인딩한다.

이 기능은 Legacy 시스템이나 원격 클라이언트에서 전송된 텍스트 기반의 데이터를 관계형 데이터베이스의 데이터처럼 조작하고자 할 때 유용하다.
 
Posted by Huikyun