다음을 통해 공유


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지정된 형식의 유효한 핸들이 아니면 SQLCancelHandleSQL_INVALID_HANDLE 반환합니다.

반환

SQL_SUCCESS 또는 SQL_ERROR.

진단

SQLAsyncNotificationCallback 은 다음 두 가지 상황에 대한 SQL_ERROR 반환할 수 있습니다(드라이버 또는 드라이버 관리자의 구현 문제를 나타냅니다.)

오류 설명
커넥트ion 또는 문이 알림을 요청하지 않았습니다.
잘못된 핸들 드라이버가 잘못된 핸들을 전달하여 내부 드라이버 관리자 유효성 검사 테스트에 실패했습니다.

참고 항목

비동기 실행(폴링 메서드)