다음을 통해 공유


SQLCompleteAsync 함수

규칙
도입된 버전: ODBC 3.8 표준 준수: 없음

요약
SQLCompleteAsync 를 사용하여 알림 또는 폴링 기반 처리를 사용하여 비동기 함수가 완료되는 시기를 확인할 수 있습니다. 비동기 작업에 대한 자세한 내용은 비동기 실행을 참조하세요.

SQLCompleteAsync 는 ODBC 드라이버 관리자에서만 구현됩니다.

알림 기반 비동기 처리 모드 에서 드라이버 관리자가 알림에 사용되는 이벤트 개체를 발생시킬 때 SQLCompleteAsync 를 호출해야 합니다. SQLCompleteAsync 는 비동기 처리를 완료하고 비동기 함수는 반환 코드를 생성합니다.

폴링 기반 비동기 처리 모드 에서 SQLCompleteAsync 는 원래 비동기 함수 호출에서 인수를 지정할 필요 없이 원래 비동기 함수를 호출하는 대안입니다. ODBC 커서 라이브러리를 사용할 수 있는지 여부에 관계없이 SQLCompleteAsync 를 사용할 수 있습니다.

구문

  
SQLRETURN SQLCompleteAsync(  
      SQLSMALLINT HandleType,  
      SQLHANDLE   Handle,  
      RETCODE *   AsyncRetCodePtr);  

인수

HandleType
[입력] 비동기 처리를 완료할 핸들의 형식입니다. 유효한 값은 SQL_HANDLE_DBC 또는 SQL_HANDLE_STMT.

Handle
[입력] 비동기 처리를 완료할 핸들입니다. Handle이 HandleType지정된 형식의 유효한 핸들이 아니면 SQLCompleteAsync는 SQL_INVALID_HANDLE 반환합니다.

Handle이 HandleType지정된 형식의 유효한 핸들이 아니면 SQLCompleteAsync는 SQL_INVALID_HANDLE 반환합니다.

AsyncRetCodePtr
[출력] 비동기 API의 반환 코드를 포함할 버퍼에 대한 포인터입니다. AsyncRetCodePtr가 NULL이면 SQLCompleteAsync는 SQL_ERROR 반환합니다.

반품

SQL_SUCCESS, SQL_ERROR, SQL_NO_DATA 또는 SQL_INVALID_HANDLE.

진단

SQLCompleteAsync가 SQL_SUCCESS 반환하는 경우 애플리케이션은 AsyncRetCodePtr이 가리키는 버퍼에서 비동기 함수의 반환 코드를 가져와야 합니다. 연결된 SQLSTATE(있는 경우)는 SQL_HANDLE_STMT HandleType 및 문 핸들 또는 SQL_HANDLE_DBC HandleType 및 연결 핸들을 사용하여 SQLGetDiagRec 를 호출하여 가져올 수 있습니다. 이러한 진단 레코드는 이 SQLCompleteAsync 함수가 아니라 비동기 함수와 연결됩니다.

SQLCompleteAsync는 SQL_SUCCESS 이외의 코드를 반환하여 SQLCompleteAsync올바르게 호출되지 않았음을 나타냅니다. 이 경우 SQLCompleteAsync 는 진단 레코드를 게시하지 않습니다. 가능한 반환 코드는 다음과 같습니다.

  • SQL_INVALID_HANDLE: HandleTypeHandle으로 표시된 핸들이 유효한 핸들이 아닙니다.

  • SQL_ERROR: AsyncRetCodePtr 가 NULL이거나 핸들에서 비동기 처리를 사용할 수 없습니다.

  • SQL_NO_DATA: 알림 모드에서 비동기 작업이 진행 중이 아니거나 드라이버 관리자가 애플리케이션에 알리지 않았습니다. 폴링 모드에서는 비동기 작업이 진행되지 않습니다.

주석

폴링 기반 비동기 처리 모드에서는 SQLCompleteAsync가 SQL_SUCCESS 반환할 때 AsyncRetCodePtr가 SQL_STILL_EXECUTING 수 있습니다. AsyncRetCodePtr가 SQL_STILL_EXECUTING 않을 때까지 애플리케이션은 폴링을 유지해야 합니다. 알림 기반 비동기 처리 모드 에서 AsyncRetCodePtr 는 SQL_STILL_EXECUTING 않습니다.

참고 항목

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