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 HandleType 및 EnvironmentHandle의 핸들을 사용하여 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 함수 |