SQLFetchScroll
SQLFetchScroll#
결과 집합에서 커서를 원하는 방향으로 진행시키고 바인드된 열을 가져온다. 결과 집합은 절대위치 또는 상대위치로 변경 가능하다.
구문#
SQLRETURN SQLFetchScroll(SQLHSTMT stmt,
SQLSMALLINT fOrient,
SQLINTEGER fOffset)
인자#
자료유형 | 인자 | 사용 | 설명 |
---|---|---|---|
SQLHSTMT | stmt | 입력 | 명령문 핸들 |
SQLSMALLINT | fOrient | 입력 | Type of fetch은 다음과 같다. SQL_FETCH_NEXT SQL_FETCH_PRIOR SQL_FETCH_FIRST SQL_FETCH_LAST SQL_FETCH_ABSOLUTE SQL_FETCH_RELATIVE SQL_FETCH_BOOKMARK 위의 값을 가지고 Scroll 방향을 결정한다. |
SQLINTEGER | fOffset | 입력 | Fetch할 행의 개수 |
결괏값#
SQL_SUCCESS
SQL_SUCCESS_WITH_INFO
SQL_INVALID_HANDLE
SQL_ERROR
SQL_NO_DATA
설명#
SQLFetchScroll은 결과 집합으로부터 원하는 Row set을 리턴한다. 이 Row set은 절대위치, 상대적인 위치, 또는 북마크로 주어질 수 있다. 다만 SQL_CURSOR_FORWARD_ONLY일때에는 SQL_FETCH_NEXT만 사용가능하다.
Cursor의 위치는 다음과 같이 지정할 수 있다.
SQL_FETCH_NEXT
현재의 Cursor를 기준으로 다음 Row set을 반환한다. 즉 다음의 Cursor위치로 이동한다. 이때는 위치 이동값인 fOffset을 무시한다.
SQL_FETCH_PRIOR
현재의 Cursor를 기준으로 이전 Rowset을 반환한다. 즉 이전의 Cursor위치로 이동한다. 이때는 위치 이동값인 fOffset을 무시한다.
SQL_FETCH_RELATIVE
현재 Rowset의 위치에서 시작하여 상대적으로 fOffset만큼 Cursor를 이동하여 Rowset을 반환한다. fOffset은 이동값이 된다.
SQL_FETCH_ABSOLUTE
현재의 위치와 상관없이 특정위치 즉 , fOffset번째의 Rowset을 반환한다.
SQL_FETCH_FIRST
첫번째 Rowset을 반환한다.
SQL_FETCH_LAST
마지막 rowset을 반환한다.
SQL_FETCH_BOOKMARK
SQL_ATTR_FETCH_BOOKMARK_PTR 명령문 속성으로 지정한 북마크에서 fOffset만큼 커서를 이동하여 행집합을 반환한다.
진 단#
SQLSTATE | 설명 | 부연설명 |
---|---|---|
01004 | 자료가 잘림 | 반환될 값의 크기가 주어진 버퍼의 크기보다 큼 |
08S01 | 통신 회선 장애 (데이터 송수신 실패) | Altibase CLI 드라이버와 DB간에 함수 처리가 완료되기 전에 통신 회선 실패 |
HY000 | 일반 오류 |
오류처리#
오류나 경고등의 처리는 각 행에 대하여 개별적으로나 또는 모든 함수에 적용할 수 있다.
만일 임의의 경고가 모든 함수에 적용된다면 SQLFetchScroll()은 SQL_SUCCESS_WITH_INFO와 적절한 SQLSTATE를 반환한다. 함수에 적용되는 경고 상태 레코드들은 상태 레코드들이 행들에 개별적으로 적용되기 전에 반환된다.
관련 함수#
SQLFetch
예제#
SQLFetchScroll(stmt , SQL_FETCH_RELATIVE, 10);