■ DataSet

 

1. Description

 

DataSet은 내부적으로 다양한 Buffer 와 Header 정보를 관리하는 Table입니다. 또한 Http통신기능을 가지고 있습니다. Buffer 간의 상호작용 및 제공하는 외부 인터페이스를 통해 Viewer 기능을 담당하는 Component들이 Bind해 DataSet의 Data를 각기 고유의 UI 형태로 표현하게 하는 DataBuffer 입니다. 또한 CUD 작업이 발생시 변경된 Data들 역시 DataSet을 통해 관리됩니다.

 

 

2.Class ID

 

{ 2506B38B-0FF7-4249-BA3E-8BC1DC399FBB }

 

 

3. UI Interface

 

Non Visible Component

 

 

4. 작동방식(구조)

 

  그림3

DataSet은 내부적으로 Table구조(행,열)로 관리됩니다. 서버로부터 받아온 Data를 관리하는 Buffer 와 사용자의 작업(CUD, filter 등)에 의해 변경된 Data를 관리하는 Buffer , Buffer 정보를 Table 의 Column 형태로 관리시 사용되는 MetaData( Header Info), 이외의 Buffer Data를 다양하게 조작하고 사용될수 있도록 많은 Method, Property, Event 를 제공합니다. CRD작업시에도 각 Row 별로 고유의 Index 를 자동관리 해줍니다.

 

 

주의사항)

DataSet은 데이터 처리를 담당하는 컴포넌트입니다. 사용자가 입력한 Data를 Server에 전달하거나 Server에서 생성된 Data를 수신하는 역할을 수행합니다. 이런 Data처리를 담당하는 DataSet은 처리할 수 있는 Data size에 제약을 가지고 있는데 한 컬럼당 최대 6K, 한 로우당 8K의 제약을 가지고 있습니다.

예를 들어 컬럼 A, B, C 로 구성된 DataSet에 첫번째 Row의 Data로 A : 6K, B: 3K, C: 2K의 Data를 담아 Client로 전송하게 되면 한 Row의 Data량이 11K가 되어 한 Row에서 처리할 수 있는 8K의 용량을 초과하게 됩니다. 이럴 경우 Client에서는 Memory 문제가 발생될 수 있습니다. 이를 방지하기 위해서는 개발시 Data를 세팅하는 부분에 유효한 Data의 Size를 알고(보통 DB Schema 참조) 적정한 사이즈를 세팅해 주어야 합니다.

한 컬럼, 컬럼들의 합인 한 로우에 대한 사이즈 제약은 있지만, DataSet에서 처리할 수 있는 전체 size에 대한 제약은 없습니다.

단, ANSI형 DataSet(MxDataSet, ToinbDataSet)을 사용 중인 경우 한글 데이터가 포함된 String 형인 경우 Column Size에 *2를 곱해 처리하셔야 합니다. 이는 확장형 ANSI 문자를 표현할 때 한글의 경우 2바이트, 영문과 숫자는 1바이트를 차지하기 때문입니다

 

 

5. 사용예

 

M/D의 복잡한 Transaction Data의 관리, 조회된 Data를 공유해 다양한 UI형태(Grid, XChart, Report,    Treeview 등) 의 표현이 가능하며 화면의 UI 와 상관없이 별도의 Data관리가 가능함에 따라 Sort,  Filter, Grouping 등 많은 기능구현이 웹 페이지 상에서 구현 가능하다.

 

          grid