SQLNumResultCols 함수
규칙
버전 소개: ODBC 1.0 표준 준수: ISO 92
요약
SQLNumResultCols는 결과 집합의 열 수를 반환합니다.
구문
SQLRETURN SQLNumResultCols(
SQLHSTMT StatementHandle,
SQLSMALLINT * ColumnCountPtr);
인수
StatementHandle
[입력] 문 핸들입니다.
ColumnCountPtr
[출력] 결과 집합의 열 수를 반환할 버퍼에 대한 포인터입니다. 이 개수에는 바인딩된 책갈피 열이 포함되지 않습니다.
반품
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_STILL_EXECUTING, SQL_ERROR 또는 SQL_INVALID_HANDLE.
진단
SQLNumResultCols가 SQL_ERROR 또는 SQL_SUCCESS_WITH_INFO 반환하는 경우 SQL_HANDLE_STMT HandleType 및Handle of StatementHandle을 사용하여 SQLGetDiagRec 를 호출하여 관련 SQLSTATE 값을 가져올 수 있습니다. 다음 표에서는 SQLNumResultCols에서 일반적으로 반환되는 SQLSTATE 값을 나열하고 이 함수의 컨텍스트에서 각각에 대해 설명합니다. 표기법 "(DM)"은 드라이버 관리자가 반환한 SQLSTATE에 대한 설명 앞에 나와 있습니다. 달리 명시되지 않는 한 각 SQLSTATE 값과 연결된 반환 코드는 SQL_ERROR.
SQLSTATE | Error | 설명 |
---|---|---|
01000 | 일반 경고 | 드라이버 관련 정보 메시지입니다. 함수는 SQL_SUCCESS_WITH_INFO 반환합니다. |
08S01 | 통신 링크 실패 | 드라이버와 드라이버가 연결된 데이터 원본 간의 통신 링크는 함수가 처리를 완료하기 전에 실패했습니다. |
HY000 | 일반 오류 | 특정 SQLSTATE가 없고 구현별 SQLSTATE가 정의되지 않은 오류가 발생했습니다. *MessageText 버퍼의 SQLGetDiagRec에서 반환된 오류 메시지는 오류와 그 원인을 설명합니다. |
HY001 | 메모리 할당 오류 | 드라이버가 함수 실행 또는 완료를 지원하는 데 필요한 메모리를 할당할 수 없습니다. |
HY008 | 작업이 취소됨 | StatementHandle에 대해 비동기 처리를 사용하도록 설정했습니다. 함수가 호출되었고 실행이 완료되기 전에 StatementHandle에서 SQLCancel 또는 SQLCancelHandle이 호출되었습니다. 그런 다음 StatementHandle에서 함수를 다시 호출했습니다. 함수가 호출되었고 실행을 완료하기 전에 다중 스레드 애플리케이션의 다른 스레드에서 StatementHandle에서 SQLCancel 또는 SQLCancelHandle이 호출되었습니다. |
HY010 | 함수 시퀀스 오류 | (DM) StatementHandle과 연결된 연결 핸들에 대해 비동기적으로 실행되는 함수가 호출되었습니다. 이 비동기 함수는 SQLNumResultsCols 함수가 호출되었을 때 계속 실행되었습니다. (DM) SQLExecute, SQLExecDirect 또는 SQLMoreResults가 StatementHandle에 대해 호출되고 SQL_PARAM_DATA_AVAILABLE 반환되었습니다. 이 함수는 모든 스트리밍된 매개 변수에 대해 데이터를 검색하기 전에 호출되었습니다. (DM) 이 함수는 StatementHandle에 대해 SQLPrepare 또는 SQLExecDirect를 호출하기 전에 호출되었습니다. (DM) 이 함수가 아닌 비동기 실행 함수가 StatementHandle에 대해 호출되었고 이 함수가 호출되었을 때 계속 실행되고 있었습니다. (DM) SQLExecute, SQLExecDirect, SQLBulkOperations 또는 SQLSetPos가 StatementHandle에 대해 호출되고 SQL_NEED_DATA 반환되었습니다. 이 함수는 모든 실행 시 데이터 매개 변수 또는 열에 대한 데이터를 보내기 전에 호출되었습니다. 문 핸들을 해제할 수 있는 시기에 대한 자세한 내용은 SQLPrepare 함수를 참조하세요. |
HY013 | 메모리 관리 오류 | 메모리 조건이 낮기 때문에 기본 메모리 개체에 액세스할 수 없기 때문에 함수 호출을 처리할 수 없습니다. |
HY117 | 알 수 없는 트랜잭션 상태로 인해 연결이 일시 중단됩니다. 연결 끊기 및 읽기 전용 함수만 허용됩니다. | (DM) 일시 중단 상태에 대한 자세한 내용은 SQLEndTran 함수를 참조 하세요. |
HYT01 | 연결 제한 시간이 만료됨 | 데이터 원본이 요청에 응답하기 전에 연결 제한 시간이 만료되었습니다. 연결 제한 시간은 SQL_ATTR_CONNECTION_TIMEOUT SQLSetConnectAttr를 통해 설정됩니다. |
IM001 | 드라이버는 이 함수를 지원하지 않습니다. | (DM) StatementHandle과 연결된 드라이버는 함수를 지원하지 않습니다. |
IM017 | 비동기 알림 모드에서 폴링을 사용할 수 없습니다. | 알림 모델을 사용할 때마다 폴링이 비활성화됩니다. |
IM018 | 이 핸들에서 이전 비동기 작업을 완료하기 위해 SQLCompleteAsync 가 호출되지 않았습니다. | 핸들의 이전 함수 호출이 SQL_STILL_EXECUTING 반환하고 알림 모드가 활성화된 경우 사후 처리를 수행하고 작업을 완료하려면 핸들에서 SQLCompleteAsync 를 호출해야 합니다. |
SQLNumResultCols는 데이터 원본이 문과 연결된 SQL 문을 평가하는 시기에 따라 SQLPrepare 이후 및 SQLExecute 이전에 호출될 때 SQLPrepare 또는 SQLExecute에서 반환할 수 있는 모든 SQLSTATE를 반환할 수 있습니다.
주석
SQLNumResultCols 는 문이 준비됨, 실행됨 또는 위치 상태인 경우에만 성공적으로 호출할 수 있습니다.
StatementHandle과 연결된 문이 열을 반환하지 않으면 SQLNumResultCols는 *ColumnCountPtr를 0으로 설정합니다.
SQLNumResultCols에서 반환되는 열 수는 IRD의 SQL_DESC_COUNT 필드와 동일한 값입니다.
자세한 내용은 결과 집합이 만들어졌나요? 및 메타데이터 사용 방법을 참조하세요.
관련 함수
추가 정보 | 참조 |
---|---|
결과 집합의 열에 버퍼 바인딩 | SQLBindCol 함수 |
문 처리 취소 | SQLCancel 함수 |
결과 집합의 열에 대한 정보 반환 | SQLColAttribute 함수 |
결과 집합의 열에 대한 정보 반환 | SQLDescribeCol 함수 |
SQL 문 실행 | SQLExecDirect 함수 |
준비된 SQL 문 실행 | SQLExecute 함수 |
데이터 블록을 가져오거나 결과 집합을 스크롤합니다. | SQLFetchScroll 함수 |
단일 행 또는 데이터 블록을 정방향으로 가져오기 | SQLFetch 함수 |
데이터 열의 일부 또는 전체 가져오기 | SQLGetData 함수 |
실행을 위한 SQL 문 준비 | SQLPrepare 함수 |
커서 스크롤 옵션 설정 | SQLSetStmtAttr 함수 |