SQLCancelHandle 함수
규칙
도입된 버전: ODBC 3.8 표준 준수: 없음
대부분의 ODBC 3.8 이상 드라이버는 이 함수를 구현할 것으로 예상됩니다. 드라이버가 그렇지 않은 경우
요약
SQLCancelHandle 연결 또는 문에 대한 처리를 취소합니다. 드라이버 관리자는
통사론
SQLRETURN SQLCancelHandle(
SQLSMALLINT HandleType,
SQLHANDLE Handle);
인수
HandleType
[입력] 처리를 취소할 핸들의 형식입니다. 유효한 값은 SQL_HANDLE_DBC 또는 SQL_HANDLE_STMT.
핸들
[입력] 처리를 취소할 핸들입니다.
HandleHandleType지정된 형식의 유효한 핸들이 아닌 경우 SQLCancelHandle SQL_INVALID_HANDLE 반환합니다.
반환
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR 또는 SQL_INVALID_HANDLE.
진단
SQLCancelHandle
다음 표에서는 SQLCancelHandle 일반적으로 반환되는 SQLSTATE 값을 나열하고 이 함수의 컨텍스트에서 각각에 대해 설명합니다. "(DM)" 표기법은 드라이버 관리자가 반환한 SQLSTATE에 대한 설명 앞에 섰습니다. 달리 명시되지 않는 한 각 SQLSTATE 값과 연결된 반환 코드는 SQL_ERROR.
SQLSTATE | 오류 | 묘사 |
---|---|---|
01000 | 일반 경고 | 드라이버 관련 정보 메시지입니다. 함수는 SQL_SUCCESS_WITH_INFO 반환합니다. |
HY000 | 일반 오류 | 특정 SQLSTATE가 없고 구현별 SQLSTATE가 정의되지 않은 오류가 발생했습니다. *MessageText 버퍼 인수의 |
HY001 | 메모리 할당 오류 | 드라이버가 함수 실행 또는 완료를 지원하는 데 필요한 메모리를 할당할 수 없습니다. |
HY010 | 함수 시퀀스 오류 | 비동기적으로 실행되는 문 관련 함수는 (DM) HandleType 인수가 SQL_HANDLE_STMT; 연결된 연결 핸들에서 비동기적으로 실행되는 함수가 호출되었습니다. 이 함수가 호출되었을 때 함수가 계속 실행되고 있습니다. (DM) SQLExecute, SQLExecDirect또는 SQLMoreResultsHandle 연결된 문 핸들 중 하나에 대해 호출되었으며 HandleType SQL_HANDLE_DBC 설정되고 SQL_PARAM_DATA_AVAILABLE 반환되었습니다. 이 함수는 모든 스트리밍된 매개 변수에 대해 데이터를 검색하기 전에 호출되었습니다. SQLBrowseConnectConnectionHandle호출되고 SQL_NEED_DATA 반환되었습니다. 이 함수는 검색 프로세스가 완료되기 전에 호출되었습니다. |
HY013 | 메모리 관리 오류 | 메모리 조건이 낮기 때문에 기본 메모리 개체에 액세스할 수 없기 때문에 함수 호출을 처리할 수 없습니다. |
HY092 | 잘못된 특성/옵션 식별자 | HandleType SQL_HANDLE_ENV 또는 SQL_HANDLE_DESC 설정되었습니다. |
HY117 | 알 수 없는 트랜잭션 상태로 인해 연결이 일시 중단됩니다. 연결 끊기 및 읽기 전용 함수만 허용됩니다. | (DM) 일시 중단 상태에 대한 자세한 내용은 SQLEndTran 함수참조하세요. |
HYT01 | 연결 제한 시간이 만료되었습니다. | 데이터 원본이 요청에 응답하기 전에 연결 제한 시간이 만료되었습니다. 연결 제한 시간은 SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT 통해 설정됩니다. |
IM001 | 드라이버는 이 함수를 지원하지 않습니다. | (DM) Handle 연결된 드라이버는 함수를 지원하지 않습니다. |
코멘트
이 함수는 SQLCancel 비슷하지만 연결 또는 문 핸들을 문 핸들이 아닌 매개 변수로 사용할 수 있습니다. 드라이버 관리자는
문 작업을 취소하는 방법에 대한 자세한 내용은 SQLCancel 함수참조하세요.
Handle 진행 중인 작업이 없는 경우 SQLCancelHandle 대한 호출은 영향을 주지 않습니다.
연결 핸들에서 SQLCancelHandle
연결에서 비동기적으로 실행되는 함수입니다.
다른 스레드의 연결 핸들에서 실행되는 함수입니다.
연결에서 비동기적으로 실행되는 함수를 취소하기 위해 SQLCancelHandle 호출되면 SQLCancelHandle 게시한 진단 레코드가 취소되는 작업에서 반환된 레코드에 추가됩니다. 그러나 SQLCancelHandle 다른 스레드의 연결에서 실행되는 함수를 취소할 때 진단 레코드를 반환하지 않습니다.
메모
Windows 7보다 오래된 Windows 운영 체제에 배포될 애플리케이션에서 SQLCancelHandle 사용하는 방법에 대한 자세한 내용은 호환성 매트릭스참조하세요.
Connection-Related 비동기 처리 취소
함수가 SQL_STILL_EXECUTING 반환하는 경우 애플리케이션은 SQLCancelHandle 호출하여 작업을 취소할 수 있습니다. 취소 요청이 성공하면 SQLCancelHandle SQL_SUCCESS 반환합니다. 원래 함수가 취소되었음을 의미하지는 않습니다. 취소 요청이 처리되었음을 나타냅니다. 드라이버와 데이터 원본은 작업이 취소되는 시기 또는 시기를 결정합니다. 반환 코드가 SQL_STILL_EXECUTING 않을 때까지 애플리케이션은 원래 함수를 계속 호출해야 합니다. 원래 함수가 취소된 경우 반환 코드는 SQL_ERROR SQLSTATE HY008(작업이 취소됨)입니다. 원래 함수가 정상적인 처리를 완료한 경우(취소되지 않음) 반환 코드는 SQL_SUCCESS 또는 SQL_SUCCESS_WITH_INFO, 원래 함수가 실패한 경우 HY008(작업 취소)이 아닌 SQLSTATE와 SQL_ERROR.
다른 스레드에서 실행되는 함수 취소
다중 스레드 애플리케이션에서 애플리케이션은 다른 스레드에서 실행 중인 작업을 취소할 수 있습니다. 작업을 취소하기 위해 애플리케이션은 함수에서 사용되는 핸들을 사용하여 SQLCancelHandle 호출하지만 다른 스레드에서 호출합니다. 드라이버와 운영 체제는 작업을 취소하는 방법을 결정합니다. SQLCancelHandle 반환 코드는 드라이버가 요청을 처리하여 SQL_SUCCESS 또는 SQL_ERROR 반환하는지 여부를 나타냅니다(진단 정보가 반환되지 않음). 원래 함수의 처리가 취소되면 원래 함수는 SQL_ERROR 및 SQLSTATE HY008(작업이 취소됨)을 반환합니다.
함수를 취소하기 위해 다른 스레드에서 SQLCancelHandle 호출될 때 함수가 실행되는 경우 함수가 성공하고 취소가 적용되기 전에 SQL_SUCCESS 반환할 수 있습니다. SQLCancelHandle 작업을 취소하기 전에 작업이 완료된 경우 SQLCancelHandle 호출은 영향을 주지 않습니다.
관련 함수
자세한 내용은 | 보다 |
---|---|
문 핸들에서 비동기적으로 실행되는 함수를 취소하거나, 데이터가 필요한 문에서 함수를 취소하거나, 다른 스레드의 문에서 실행되는 함수를 취소합니다. | SQLCancel 함수 |