SQLSetScrollOptions 매핑
애플리케이션이 ODBC 3.x 드라이버를 통해 SQLSetScrollOptions를 호출하고 드라이버가 SQLSetScrollOptions를 지원하지 않는 경우
SQLSetScrollOptions(StatementHandle, Concurrency, KeysetSize, RowsetSize)
는 다음과 같이 발생합니다.
에 대한 호출
SQLGetInfo(ConnectionHandle, InfoType, InfoValuePtr, BufferLength, StringLengthPtr)
SQLSetScrollOptions의 KeysetSize 인수 값에 따라 InfoType 인수를 다음 표의 값 중 하나로 설정합니다.
KeysetSize 인수 InfoType 인수 SQL_SCROLL_FORWARD_ONLY SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 SQL_SCROLL_STATIC SQL_STATIC_CURSOR_ATTRIBUTES2 SQL_SCROLL_KEYSET_DRIVEN SQL_KEYSET_CURSOR_ATTRIBUTES2 SQL_SCROLL_DYNAMIC SQL_DYNAMIC_CURSOR_ATTRIBUTES2 RowsetSize 인수보다 큰 값 SQL_KEYSET_CURSOR_ATTRIBUTES2 KeysetSize 인수의 값이 앞의 표에 나열되지 않은 경우 SQLSetScrollOptions에 대한 호출은 SQLSTATE S1107(행 값이 범위를 벗어났음)을 반환하며 다음 단계 중 어느 것도 수행되지 않습니다.
그런 다음 드라이버 관리자는 SQLSetScrollOptions의 동시성 인수 값에 따라 SQLGetInfo 호출에서 반환된 *InfoValuePtr 값에 적절한 비트가 설정되어 있는지 확인합니다.
동시성 인수 InfoType 설정 SQL_CONCUR_READ_ONLY SQL_CA2_READ_ONLY_CONCURRENCY SQL_CONCUR_LOCK SQL_CA2_LOCK_CONCURRENCY SQL_CONCUR_ROWVER SQL_CA2_ROWVER_CONCURRENCY SQL_CONCUR_VALUES SQL_CA2_VALUES_CONCURRENCY 동시성 인수가 이전 표의 값 중 하나가 아닌 경우 SQLSetScrollOptions에 대한 호출은 SQLSTATE S1108(범위를 벗어난 동시성 옵션)을 반환하며 다음 단계 중 어느 것도 수행되지 않습니다. 이전 표에 표시된 대로 적절한 비트가 *InfoValuePtr에서 동시성 인수에 해당하는 값 중 하나로 설정되지 않은 경우 SQLSetScrollOptions에 대한 호출은 SQLSTATE S1C00(드라이버를 사용할 수 없음)을 반환하며 다음 단계 중 어느 것도 수행되지 않습니다.
에 대한 호출
SQLSetStmtAttr(StatementHandle, SQL_ATTR_CURSOR_TYPE, ValuePtr, 0)
SQLSetScrollOptions의 KeysetSize 인수 값에 따라 *ValuePtr을 다음 표의 값 중 하나로 설정합니다.
KeysetSize 인수 *ValuePtr SQL_SCROLL_FORWARD_ONLY SQL_CURSOR_FORWARD_ONLY SQL_SCROLL_STATIC SQL_CURSOR_STATIC SQL_SCROLL_KEYSET_DRIVEN SQL_CURSOR_KEYSET_DRIVEN SQL_SCROLL_DYNAMIC SQL_CURSOR_DYNAMIC RowsetSize 인수보다 큰 값 SQL_CURSOR_KEYSET_DRIVEN 에 대한 호출
SQLSetStmtAttr(StatementHandle, SQL_ATTR_CONCURRENCY, ValuePtr, 0)
*ValuePtr이 SQLSetScrollOptions의 동시성 인수로 설정된 경우
SQLSetScrollOptions 호출의 KeysetSize 인수가 양수이면 다음을 호출합니다.
SQLSetStmtAttr(StatementHandle, SQL_ATTR_KEYSET_SIZE, ValuePtr, 0)
*ValuePtr이 SQLSetScrollOptions의 KeysetSize 인수로 설정된 경우
에 대한 호출
SQLSetStmtAttr(StatementHandle, SQL_ROWSET_SIZE, ValuePtr, 0)
*ValuePtr이 SQLSetScrollOptions의 RowsetSize 인수로 설정된 경우
참고 항목
드라이버 관리자가 SQLSetScrollOptions를 지원하지 않는 ODBC 3.x 드라이버로 작업하는 애플리케이션에 대해 SQLSetScrollOptions를 매핑하면 드라이버 관리자는 SQL_ATTR_ROW_ARRAY_SIZE 문 특성이 아닌 SQL_ROWSET_SIZE 문 옵션을 SQLSetScrollOption의 RowsetSize 인수로 설정합니다. 따라서 SQLFetch 또는 SQLFetchScroll을 호출하여 여러 행을 가져올 때 애플리케이션에서 SQLSetScrollOptions를 사용할 수 없습니다. SQLExtendedFetch를 호출하여 여러 행을 페치할 때만 사용할 수 있습니다.