SQLAsyncNotificationCallback 함수
규칙
버전 소개: ODBC 3.8
표준 준수: 없음
요약
SQLAsyncNotificationCallback 을 사용하면 드라이버가 SQL_STILL_EXECUTING 반환한 후 현재 비동기 작업에 대한 일부 진행률이 있는 경우 드라이버가 드라이버 관리자로 다시 호출할 수 있습니다. SQLAsyncNotificationCallback 은 드라이버에서만 호출할 수 있습니다.
드라이버는 함수 이름 SQLAsyncNotificationCallback을 사용하여 SQLAsyncNotificationCallback을 호출하지 않습니다. 대신 드라이버 관리자는 해당 연결 핸들 또는 문 핸들의 SQL_ATTR_ASYNC_DBC_NOTIFICATION_CALLBACK 또는 SQL_ATTR_ASYNC_STMT_NOTIFICATION_CALLBACK 특성에 대한 값으로 드라이버에 함수 포인터를 전달합니다. 다른 핸들에 다른 함수 포인터 값이 할당될 수 있습니다. 함수 포인터의 형식은 SQL_ASYNC_NOTIFICATION_CALLBACK 정의됩니다.
SQLAsyncNotificationCallback 은 스레드로부터 안전합니다. 드라이버는 다른 핸들에서 SQLAsyncNotificationCallback을 호출하는 여러 스레드를 동시에 사용하도록 선택할 수 있습니다.
구문
typedef SQLRETURN (SQL_API *SQL_ASYNC_NOTIFICATION_CALLBACK)(
SQLPOINTER pContex,
BOOL fLast);
인수
pContex
드라이버 관리자에서 정의한 데이터 구조에 대한 포인터입니다. 값은 SQLSet커넥트Attr(SQL_ATTR_ASYNC_DBC_NOTIFICATION_CONTEXT) 또는 SQLSetStmtAttr(SQL_ATTR_ASYNC_STMT_NOTIFICATION_CONTEXT)을 통해 드라이버에 전달됩니다. 드라이버가 값에 액세스할 수 없습니다.
fLast
드라이버에서 이 콜백 함수 호출이 현재 비동기 작업의 마지막 호출임을 나타내는 데 사용됩니다. 드라이버 관리자는 함수를 다시 호출할 때 SQL_STILL_EXECUTING 이외의 반환 코드를 반환합니다. 예를 들어 드라이버 관리자는 이 정보를 사용하여 비동기 작업이 완료될 것이라고 애플리케이션에 미리 알릴 수 있습니다.
Handle이 HandleType에 지정된 형식의 유효한 핸들이 아니면 SQLCancelHandle은 SQL_INVALID_HANDLE 반환합니다.
반환
SQL_SUCCESS 또는 SQL_ERROR.
진단
SQLAsyncNotificationCallback 은 다음 두 가지 상황에 대한 SQL_ERROR 반환할 수 있습니다(드라이버 또는 드라이버 관리자의 구현 문제를 나타냅니다.)
오류 | 설명 |
---|---|
커넥트ion 또는 문이 알림을 요청하지 않았습니다. | |
잘못된 핸들 | 드라이버가 잘못된 핸들을 전달하여 내부 드라이버 관리자 유효성 검사 테스트에 실패했습니다. |