다음을 통해 공유


SQLDrivers 함수

규칙
버전 소개: ODBC 2.0 표준 준수: ODBC

요약
SQLDrivers 는 드라이버 설명 및 드라이버 특성 키워드를 나열합니다. 이 함수는 드라이버 관리자에서만 구현됩니다.

구문

  
SQLRETURN SQLDrivers(  
     SQLHENV         EnvironmentHandle,  
     SQLUSMALLINT    Direction,  
     SQLCHAR *       DriverDescription,  
     SQLSMALLINT     BufferLength1,  
     SQLSMALLINT *   DescriptionLengthPtr,  
     SQLCHAR *       DriverAttributes,  
     SQLSMALLINT     BufferLength2,  
     SQLSMALLINT *   AttributesLengthPtr);  

인수

EnvironmentHandle
[입력] 환경 핸들입니다.

방향
[입력] 드라이버 관리자가 목록에서 다음 드라이버 설명을 가져올지(SQL_FETCH_NEXT) 또는 검색이 목록의 시작 부분에서 시작되는지 여부를 결정합니다(SQL_FETCH_FIRST).

DriverDescription
[출력] 드라이버 설명을 반환할 버퍼에 대한 포인터입니다.

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

BufferLength1
[입력] *DriverDescription 버퍼의 길이(문자)입니다.

DescriptionLengthPtr
[출력] *DriverDescription에서 반환할 수 있는 총 문자 수(null 종료 문자 제외)를 반환할 버퍼에 대한 포인터입니다. 반환할 수 있는 문자 수가 BufferLength1보다 크거나 같으면 *DriverDescription의 드라이버 설명이 BufferLength1에서 null 종료 문자의 길이를 뺀 값으로 잘립니다.

DriverAttributes
[출력] 드라이버 특성 값 쌍 목록을 반환할 버퍼에 대한 포인터입니다("주석" 참조).

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

BufferLength2
[입력] *DriverAttributes 버퍼의 길이(문자)입니다. *DriverDescription 값이 유니코드 문자열인 경우(SQLDriversW를 호출할 때) BufferLength 인수는 짝수여야 합니다.

AttributesLengthPtr
[출력] *DriverAttributes에서 반환할 수 있는 총 바이트 수(null 종료 바이트 제외)를 반환할 버퍼에 대한 포인터입니다. 반환할 수 있는 바이트 수가 BufferLength2보다 크거나 같으면 *DriverAttributes의 특성 값 쌍 목록이 BufferLength2에서 null 종료 문자의 길이를 뺀 값으로 잘립니다.

반품

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR 또는 SQL_INVALID_HANDLE.

진단

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

SQLSTATE Error 설명
01000 일반 경고 (DM) 드라이버 관리자 관련 정보 메시지입니다. 함수는 SQL_SUCCESS_WITH_INFO 반환합니다.
01004 문자열 데이터, 오른쪽 잘림 (DM) 버퍼 *DriverDescription 이 전체 드라이버 설명을 반환할 만큼 크지 않았습니다. 따라서 설명이 잘렸습니다. 전체 드라이버 설명의 길이는 *DescriptionLengthPtr에서 반환됩니다. 함수는 SQL_SUCCESS_WITH_INFO 반환합니다.

(DM) 버퍼 *DriverAttributes 가 특성 값 쌍의 전체 목록을 반환할 만큼 크지 않았습니다. 따라서 목록이 잘렸습니다. 신뢰할 수 없는 특성 값 쌍 목록의 길이는 *AttributesLengthPtr에서 반환됩니다. 함수는 SQL_SUCCESS_WITH_INFO 반환합니다.
HY000 일반 오류 특정 SQLSTATE가 없고 구현별 SQLSTATE가 정의되지 않은 오류가 발생했습니다. *MessageText 버퍼의 SQLGetDiagRec에서 반환된 오류 메시지는 오류와 그 원인을 설명합니다.
HY001 메모리 할당 오류 (DM) 드라이버 관리자가 함수 실행 또는 완료를 지원하는 데 필요한 메모리를 할당할 수 없습니다.
HY010 함수 시퀀스 오류 (DM) SQLExecute, SQLExecDirect 또는 SQLMoreResults가 StatementHandle에 대해 호출되고 SQL_PARAM_DATA_AVAILABLE 반환되었습니다. 이 함수는 모든 스트리밍된 매개 변수에 대해 데이터를 검색하기 전에 호출되었습니다.
HY013 메모리 관리 오류 메모리 조건이 낮기 때문에 기본 메모리 개체에 액세스할 수 없기 때문에 함수 호출을 처리할 수 없습니다.
HY090 잘못된 문자열 또는 버퍼 길이 (DM) BufferLength1 인수에 지정된 값이 0보다 작습니다.

(DM) BufferLength2 인수에 지정된 값이 0보다 작거나 1과 같습니다.
HY103 잘못된 검색 코드 (DM) Direction 인수에 지정된 값이 SQL_FETCH_FIRST 또는 SQL_FETCH_NEXT 같지 않습니다.
HY117 알 수 없는 트랜잭션 상태로 인해 연결이 일시 중단됩니다. 연결 끊기 및 읽기 전용 함수만 허용됩니다. (DM) 일시 중단 상태에 대한 자세한 내용은 SQLEndTran 함수를 참조 하세요.

주석

SQLDrivers 는 *DriverDescription 버퍼의 드라이버 설명을 반환합니다 . *DriverAttributes 버퍼의 드라이버에 대한 추가 정보를 키워드-값 쌍 목록으로 반환합니다. 드라이버에 대한 시스템 정보에 나열된 모든 키워드는 CreateDSN을 제외한 모든 드라이버에 대해 반환됩니다. 이 키워드는 데이터 원본 생성을 요청하는 데 사용되므로 선택 사항입니다. 각 쌍은 null 바이트로 종료되고 전체 목록은 null 바이트로 종료됩니다(즉, 2개의 null 바이트가 목록의 끝을 표시). 예를 들어 C 구문을 사용하는 파일 기반 드라이버는 다음 특성 목록을 반환할 수 있습니다("\0"은 null 문자를 나타냅니다.)

FileUsage=1\0FileExtns=*.dbf\0\0  

*DriverAttributes 가 전체 목록을 보유할 만큼 크지 않으면 목록이 잘리고, SQLDrivers 는 SQLSTATE 01004(데이터가 잘린 경우)를 반환하고, 목록의 길이(최종 null 종료 바이트 제외)는 *AttributesLengthPtr에 반환됩니다.

드라이버 특성 키워드는 드라이버가 설치될 때 시스템 정보에서 추가됩니다. 자세한 내용은 ODBC 구성 요소 설치를 참조 하세요.

애플리케이션은 SQLDrivers를 여러 번 호출하여 모든 드라이버 설명을 검색할 수 있습니다. 드라이버 관리자는 시스템 정보에서 이 정보를 검색합니다. 드라이버 설명이 더 이상 없으면 SQLDrivers는 SQL_NO_DATA 반환합니다. SQLDrivers가 SQL_NO_DATA 반환한 직후 SQL_FETCH_NEXT 호출되면 첫 번째 드라이버 설명이 반환됩니다. 애플리케이션에서 SQLDrivers에서 반환된 정보를 사용하는 방법에 대한 자세한 내용은 데이터 원본 또는 드라이버 선택을 참조하세요.

SQL_FETCH_NEXT 처음 호출될 때 SQLDrivers전달되면 SQLDrivers는 첫 번째 데이터 원본 이름을 반환합니다.

SQLDrivers는 드라이버 관리자에서 구현되므로 특정 드라이버의 표준 준수에 관계없이 모든 드라이버에 대해 지원됩니다.

추가 정보 참조
데이터 원본에 연결하는 데 필요한 값 검색 및 나열 SQLBrowseConnect 함수
데이터 소스에 연결 SQLConnect 함수
데이터 원본 이름 반환 SQLDataSources 함수
연결 문자열 또는 대화 상자를 사용하여 데이터 원본에 연결 SQLDriverConnect 함수

참고 항목

ODBC API 참조
ODBC 헤더 파일