반환 코드 ODBC

ODBC의 각 함수는 함수의 전반적인 성공 또는 실패를 나타내는 반환 코드라고 하는 코드를 반환합니다. 프로그램 논리는 일반적으로 반환 코드를 기반으로 합니다.

예를 들어 다음 코드는 SQLFetch를 호출하여 결과 집합의 행을 검색합니다. 함수의 반환 코드를 검사 결과 집합의 끝에 도달했는지(SQL_NO_DATA), 경고 정보가 반환되었는지(SQL_SUCCESS_WITH_INFO) 또는 오류가 발생했는지(SQL_ERROR) 확인합니다.

SQLRETURN   rc;  
SQLHSTMT    hstmt;  
  
while ((rc=SQLFetch(hstmt)) != SQL_NO_DATA) {  
   if (rc == SQL_SUCCESS_WITH_INFO) {  
      // Call function to display warning information.  
   } else if (rc == SQL_ERROR) {  
      // Call function to display error information.  
      break;  
   }  
   // Process row.  
}  

반환 코드 SQL_INVALID_HANDLE 항상 프로그래밍 오류를 나타내며 런타임에 발생하지 않아야 합니다. 다른 모든 반환 코드는 런타임 정보를 제공하지만 SQL_ERROR 프로그래밍 오류를 나타낼 수 있습니다.

다음 표에서는 반환 코드를 정의합니다.

반환 코드 설명
SQL_SUCCESS 함수가 성공적으로 완료되었습니다. 애플리케이션은 SQLGetDiagField를 호출하여 헤더 레코드에서 추가 정보를 검색합니다.
SQL_SUCCESS_WITH_INFO 함수가 성공적으로 완료되었으며 심각하지 않은 오류(경고)가 있을 수 있습니다. 애플리케이션은 SQLGetDiagRec 또는 SQLGetDiagField를 호출하여 추가 정보를 검색합니다.
SQL_ERROR 함수가 실패했습니다. 애플리케이션은 SQLGetDiagRec 또는 SQLGetDiagField를 호출하여 추가 정보를 검색합니다. 함수에 대한 출력 인수의 내용은 정의되지 않습니다.
SQL_INVALID_HANDLE 잘못된 환경, 연결, 문 또는 설명자 핸들로 인해 함수가 실패했습니다. 이는 프로그래밍 오류를 나타냅니다. SQLGetDiagRec 또는 SQLGetDiagField에서 사용할 수 있는 추가 정보는 없습니다. 이 코드는 핸들이 null 포인터이거나 연결 핸들이 필요한 인수에 대해 문 핸들이 전달되는 경우와 같이 잘못된 형식인 경우에만 반환됩니다.
SQL_NO_DATA 더 이상 데이터를 사용할 수 없습니다. 애플리케이션은 SQLGetDiagRec 또는 SQLGetDiagField를 호출하여 추가 정보를 검색합니다. 클래스 02xxx에서 하나 이상의 드라이버 정의 상태 레코드가 반환될 수 있습니다. 참고: ODBC 2.x. 이 반환 코드의 이름은 SQL_NO_DATA_FOUND.
SQL_NEED_DATA 실행 시 매개 변수 데이터가 전송되거나 추가 연결 정보가 필요한 경우와 같은 추가 데이터가 필요합니다. 애플리케이션은 SQLGetDiagRec 또는 SQLGetDiagField를 호출하여 추가 정보를 검색합니다(있는 경우).
SQL_STILL_EXECUTING 비동기적으로 시작된 함수는 여전히 실행 중입니다. 애플리케이션은 SQLGetDiagRec 또는 SQLGetDiagField를 호출하여 추가 정보를 검색합니다(있는 경우).