데이터 셰이핑 예제
다음 데이터 셰이핑 명령은 Northwind 데이터베이스의 Customers 및 Orders 테이블에서 계층적 Recordset를 빌드하는 방법을 보여 줍니다.
SHAPE {SELECT CustomerID, ContactName FROM Customers}
APPEND ({SELECT OrderID, OrderDate, CustomerID FROM Orders} AS chapOrders
RELATE customerID TO customerID)
이 명령을 사용하여 Recordset 개체(데이터 셰이핑의 Visual Basic 예제와 같이)를 열면 Customers 테이블에서 반환된 각 레코드에 대한 챕터(chapOrders)를 만듭니다. 이 챕터는 Orders 테이블에서 반환된 Recordset의 하위 집합으로 구성됩니다. chapOrders 챕터에는 지정된 고객이 한 주문에 대한 요청된 모든 정보가 포함되어 있습니다. 이 예제에서 챕터는 OrderID, OrderDate, CustomerID의 세 열로 구성됩니다.
결과 셰이핑된 레코드 집합의 처음 두 항목은 다음과 같습니다.
CustomerID | ContactName | OrderID | OrderDate | CustomerID |
---|---|---|---|---|
ALFKI | Maria Ander | 10643 10692 10702 10835 10952 11011 |
1997-08-25 1997-10-03 1997-10-13 1998-01-15 1998-03-16 1998-04-09 |
ALFKI ALFKI ALFKI ALFKI ALFKI ALFKI |
ANATR | Ana Trujillo | 10308 10625 10759 10926 |
1996-09-18 1997-08-08 1997-11-28 1998-03-04 |
ANATR ANATR ANATR ANATR |
SHAPE 명령에서 APPEND는 RELATE 절에서 부모 Recordset와 관련된 자식 Recordset를 만드는 데 사용됩니다(앞에서 설명한 SHAPE 키워드 바로 뒤에 있는 공급자별 명령에서 반환됨). 일반적으로 부모 및 자식의 공통 열은 하나 이상 있습니다. 부모 행의 열 값은 자식의 모든 행에 있는 열 값과 같습니다.
SHAPE 명령을 사용하는 두 번째 방법이 있습니다. 즉, 자식 Recordset에서 부모 Recordset를 생성하는 것입니다. 자식 Recordset의 레코드는 일반적으로 BY 절을 사용하여 그룹화되며 자식의 각 결과 그룹에 대해 부모 Recordset에 하나의 행이 추가됩니다. BY 절을 생략하면 자식 Recordset가 단일 그룹을 구성하고 부모 Recordset에 정확히 하나의 행이 포함됩니다. 이는 전체 자식 Recordset에 대해 “총합계” 집계를 계산하는 데 유용합니다.
SHAPE 명령 구문을 사용하면 셰이핑된 레코드 집합을 프로그래밍 방식으로 만들 수도 있습니다. 그런 다음, 프로그래밍 방식으로 또는 적절한 시각적 컨트롤을 통해 Recordset의 구성 요소에 액세스할 수 있습니다. 셰이프 명령은 다른 ADO 명령 텍스트와 마찬가지로 실행됩니다. 자세한 내용은 일반 셰이프 명령을 참조하세요.
부모 Recordset의 형식에 관계없이 자식Recordset와 관계를 지정하는 데 사용되는 챕터 열이 포함됩니다. 원하는 경우 부모 Recordset에는 자식 행에 대한 집계(SUM, MIN, MAX 등)가 포함된 열이 있을 수도 있습니다. 부모와 자식 Recordset 모두 Recordset의 행에 있는 식이 포함된 열 및 새 열과 처음에 비어 있는 열을 포함할 수 있습니다.
이 섹션에서는 다음 항목을 계속 진행합니다.