API의 블록 커서 사용

API 서버 커서는 한 번에 한 행씩만 인출하도록 제한되지 않으며 한 번 인출할 때 여러 행을 검색할 수 있습니다. Microsoft SQL Server와 같은 클라이언트/서버 데이터베이스 작업을 할 때는 한 번에 여러 행을 인출하는 것이 효율적입니다. 인출 시 반환되는 행 수를 행 집합 크기라고 합니다. 행 집합 크기가 1보다 큰 커서를 블록 커서라고 합니다. 지원되는 API에서는 다음과 같은 방법으로 블록 커서를 사용할 수 있습니다.

  • ODBC

    • 문 특성 SQL_ATTR_ROWSET_SIZE를 행 집합 크기로 설정합니다.

    • 열 단위 또는 행 단위 바인딩을 사용하여 열을 변수 배열에 바인딩함으로써 반환된 행의 데이터를 보유할 수 있습니다. 각 배열의 요소 수는 행 집합 크기와 같습니다.

    • SQLFetchScroll을 호출할 때마다 SQL_ATTR_ROWSET_SIZE로 설정된 행 수를 인출합니다.

  • OLE DB

    • 행 핸들의 배열을 할당하고 각 핸들로 표시되는 열을 열 데이터를 보유할 변수 배열에 바인딩합니다.

    • 행 핸들 배열의 핸들 수로 설정된 cRows 매개 변수와 prghRows 매개 변수의 행 핸들 배열 주소를 사용하여 IRowset::GetNextRows를 호출합니다.

  • ADO

    • 검색할 행 수에 대한 데이터를 보유할 variant를 선언합니다.

    • 레코드 집합 메서드 Move, MoveFirst, MoveLast, MoveNextMovePrevious를 사용하여 커서에서 variant의 적절한 위치를 지정할 수 있습니다.

    • 행을 보관할 variant의 주소를 포함하는 array 매개 변수와 반환할 행 수를 포함하는 Crows 매개 변수를 사용하여 레코드 집합 메서드 GetRows를 호출합니다. Start 매개 변수를 사용하여 레코드 집합에서의 인출 위치를 지정할 수도 있습니다.