다음을 통해 공유


SQLGetCursorName 함수

규칙
버전 소개: ODBC 1.0 표준 준수: ISO 92

요약
SQLGetCursorName 은 지정된 문과 연결된 커서 이름을 반환합니다.

구문

  
SQLRETURN SQLGetCursorName(  
     SQLHSTMT        StatementHandle,  
     SQLCHAR *       CursorName,  
     SQLSMALLINT     BufferLength,  
     SQLSMALLINT *   NameLengthPtr);  

인수

StatementHandle
[입력] 문 핸들입니다.

CursorName
[출력] 커서 이름을 반환할 버퍼에 대한 포인터입니다.

CursorName이 NULL인 경우 NameLengthPtr은 CursorName이 가리키는 버퍼에서 반환할 수 있는 총 문자 수(문자 데이터의 null 종료 문자 제외)를 계속 반환합니다.

BufferLength
[입력] *CursorName의 길이(문자)입니다.

NameLengthPtr
[출력] *CursorName에서 반환할 수 있는 총 문자 수(null 종료 문자 제외)를 반환할 메모리에 대한 포인터입니다. 반환할 수 있는 문자 수가 BufferLength보다 크거나 같으면 *CursorName의 커서 이름이 BufferLength에서 null 종료 문자의 길이를 뺀 값으로 잘립니다.

반품

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR 또는 SQL_INVALID_HANDLE.

진단

SQLGetCursorName이 SQL_ERROR 또는 SQL_SUCCESS_WITH_INFO 반환하는 경우 SQL_HANDLE_STMT HandleType Handle of StatementHandle을 사용하여 SQLGetDiagRec 를 호출하여 관련 SQLSTATE 값을 가져올 수 있습니다. 다음 표에서는 SQLGetCursorName에서 일반적으로 반환되는 SQLSTATE 값을 나열하고 이 함수의 컨텍스트에서 각각에 대해 설명합니다. 표기법 "(DM)"은 드라이버 관리자가 반환한 SQLSTATE에 대한 설명 앞에 나와 있습니다. 달리 명시되지 않는 한 각 SQLSTATE 값과 연결된 반환 코드는 SQL_ERROR.

SQLSTATE 오류 설명
01000 일반 경고 드라이버 관련 정보 메시지입니다. 함수는 SQL_SUCCESS_WITH_INFO 반환합니다.
01004 문자열 데이터, 오른쪽 잘림 버퍼 *CursorName 이 커서 이름 전체를 반환할 만큼 크지 않아 커서 이름이 잘렸습니다. 신뢰할 수 없는 커서 이름의 길이는 *NameLengthPtr에서 반환됩니다. 함수는 SQL_SUCCESS_WITH_INFO 반환합니다.
HY000 일반 오류 특정 SQLSTATE가 없고 구현별 SQLSTATE가 정의되지 않은 오류가 발생했습니다. *MessageText 버퍼의 SQLGetDiagRec에서 반환된 오류 메시지는 오류와 그 원인을 설명합니다.
HY001 메모리 할당 오류 드라이버가 함수 실행 또는 완료를 지원하는 데 필요한 메모리를 할당할 수 없습니다.
HY010 함수 시퀀스 오류 (DM) StatementHandle과 연결된 연결 핸들에 대해 비동기적으로 실행되는 함수가 호출되었습니다. 이 비동기 함수는 SQLGetCursorName 함수가 호출되었을 때 계속 실행되었습니다.

(DM) SQLExecute, SQLExecDirect 또는 SQLMoreResults가 StatementHandle에 대해 호출되고 SQL_PARAM_DATA_AVAILABLE 반환되었습니다. 이 함수는 모든 스트리밍된 매개 변수에 대해 데이터를 검색하기 전에 호출되었습니다.

(DM) StatementHandle에 대해 비동기적으로 실행되는 함수가 호출되었고 이 함수가 호출되었을 때에도 여전히 실행 중입니다.

(DM) SQLExecute, SQLExecDirect, SQLBulkOperations 또는 SQLSetPos가 StatementHandle에 대해 호출되고 SQL_NEED_DATA 반환되었습니다. 이 함수는 모든 실행 시 데이터 매개 변수 또는 열에 대한 데이터를 보내기 전에 호출되었습니다.
HY013 메모리 관리 오류 메모리 조건이 낮기 때문에 기본 메모리 개체에 액세스할 수 없기 때문에 함수 호출을 처리할 수 없습니다.
HY015 사용할 수 있는 커서 이름 없음 (DM) 드라이버가 ODBC 2*.x* 드라이버였고 문에 열려 있는 커서가 없었으며 SQLSetCursorName으로 커서 이름이 설정되지 않았습니다.
HY090 잘못된 문자열 또는 버퍼 길이 (DM) BufferLength 인수에 지정된 값이 0보다 작습니다.
HY117 알 수 없는 트랜잭션 상태로 인해 연결이 일시 중단됩니다. 연결 끊기 및 읽기 전용 함수만 허용됩니다. (DM) 일시 중단 상태에 대한 자세한 내용은 SQLEndTran 함수를 참조 하세요.
HYT01 연결 제한 시간이 만료됨 데이터 원본이 요청에 응답하기 전에 연결 제한 시간이 만료되었습니다. 연결 제한 시간은 SQL_ATTR_CONNECTION_TIMEOUT SQLSetConnectAttr를 통해 설정됩니다.
IM001 드라이버는 이 함수를 지원하지 않습니다. (DM) StatementHandle연결된 드라이버는 함수를 지원하지 않습니다.

설명

커서 이름은 위치가 지정된 업데이트 및 삭제 문(예: UPDATE 테이블 이름...WHERE CURRENT OF cursor-name). 자세한 내용은 위치 지정 업데이트 및 삭제 문을 참조 하세요. 애플리케이션에서 커서 이름을 정의하기 위해 SQLSetCursorName을 호출하지 않으면 드라이버가 이름을 생성합니다. 이 이름은 SQL_CUR 문자로 시작합니다.

참고 항목

ODBC 2*.x*에서 열려 있는 커서가 없고 SQLSetCursorName 호출로 이름이 설정되지 않은 경우 SQLGetCursorName대한 호출에서 SQLSTATE HY015(사용할 수 있는 커서 이름 없음)가 반환되었습니다. ODBC 3*.x*에서는 더 이상 true가 아닙니다. SQLGetCursorName이 호출되는 시기와 관계없이 드라이버는 커서 이름을 반환합니다.

SQLGetCursorName 은 이름이 명시적으로 만들어졌는지 암시적으로 만들어졌는지 여부에 관계없이 커서의 이름을 반환합니다. SQLSetCursorName이 호출되지 않으면 커서 이름이 암시적으로 생성됩니다. 커서가 할당되거나 준비된 상태인 한 SQLSetCursorName 을 호출하여 문의 커서 이름을 바꿀 수 있습니다.

명시적으로 또는 암시적으로 설정된 커서 이름은 SQLFreeHandle과 SQL_HANDLE_STMT HandleType을 사용하여 연결된 StatementHandle 이 삭제될 때까지 설정됩니다.

추가 정보 참조
SQL 문 실행 SQLExecDirect 함수
준비된 SQL 문 실행 SQLExecute 함수
실행을 위한 문 준비 SQLPrepare 함수
커서 이름 설정 SQLSetCursorName 함수

참고 항목

ODBC API 참조
ODBC 헤더 파일