다음을 통해 공유


SQLRemoveDriver 함수

규칙
버전 소개: ODBC 3.0

요약
SQLRemoveDriver는 시스템 정보의 Odbcinst.ini 항목에서 드라이버에 대한 정보를 변경하거나 제거합니다.

구문

  
BOOL SQLRemoveDriver(  
     LPCSTR   lpszDriver,  
     BOOL     fRemoveDSN,  
     LPDWORD  lpdwUsageCount);  

인수

lpszDriver
[입력] 시스템 정보의 Odbcinst.ini 키에 등록된 드라이버의 이름입니다.

fRemoveDSN
[입력] 유효한 값은 다음과 같습니다.

TRUE: lpszDriver지정된 드라이버와 연결된 DSN을 제거합니다. FALSE: lpszDriver지정된 드라이버와 연결된 DSN을 제거하지 마세요.

lpdwUsageCount
[출력] 이 함수가 호출된 후 드라이버의 사용 횟수입니다.

반품

이 함수는 성공하면 TRUE를 반환하고 실패하면 FALSE를 반환합니다. 이 함수를 호출할 때 시스템 정보에 항목이 없으면 함수는 FALSE를 반환합니다.

진단

SQLRemoveDriver가 FALSE를 반환하면 SQLInstallerError를 호출하여 연결된 *pfErrorCode 값을 가져올 수 있습니다. 다음 표에서는 SQLInstallerError에서 반환할 수 있는 *pfErrorCode 값을 나열하고 이 함수의 컨텍스트에서 각각에 대해 설명합니다.

*pfErrorCode Error 설명
ODBC_ERROR_GENERAL_ERR 일반 설치 관리자 오류 특정 설치 관리자 오류가 없는 오류가 발생했습니다.
ODBC_ERROR_COMPONENT_NOT_FOUND 레지스트리에서 구성 요소를 찾을 수 없음 레지스트리에 없거나 레지스트리에서 찾을 수 없으므로 설치 관리자가 드라이버 정보를 제거할 수 없습니다.
ODBC_ERROR_INVALID_NAME 드라이버 또는 번역기 이름이 잘못되었습니다. lpszDriver 인수가 잘못되었습니다.
ODBC_ERROR_USAGE_UPDATE_FAILED 구성 요소 사용 횟수를 증가 또는 감소시킬 수 없습니다. 설치 관리자가 드라이버의 사용 횟수를 줄이지 못했습니다.
ODBC_ERROR_REQUEST_FAILED 요청 실패 fRemoveDSN 인수는 TRUE입니다. 그러나 하나 이상의 DSN을 제거할 수 없습니다. ODBC_REMOVE_DRIVER 요청을 사용하여 SQLConfigDriver 를 호출하지 못했습니다.
ODBC_ERROR_OUT_OF_MEM 메모리 부족 메모리 부족으로 인해 설치 관리자가 함수를 수행할 수 없습니다.

주석

SQLRemoveDriverSQLInstallDriverEx 함수를 보완하고 시스템 정보의 구성 요소 사용 횟수를 업데이트합니다. 이 함수는 설치 애플리케이션에서만 호출해야 합니다.

SQLRemoveDriver 는 구성 요소 사용량 개수 값을 1로 줄입니다. 구성 요소 사용 횟수가 0으로 표시되면 다음이 발생합니다.

  1. ODBC_REMOVE_DRIVER 옵션이 있는 SQLConfigDriver 함수가 호출됩니다. fRemoveDSN 옵션이 TRUE로 설정된 경우 ConfigDSN 함수는 SQLRemoveDSNFromIni를 호출하여 lpszDriver에 지정된 드라이버와 연결된 모든 데이터 원본을 제거합니다.fRemoveDSN 옵션이 FALSE로 설정된 경우 데이터 원본은 삭제되지 않습니다.

  2. 시스템 정보의 드라이버 항목이 제거됩니다. 드라이버 항목은 드라이버 이름 아래에 있는 다음 시스템 정보 위치에 있습니다.

    HKEY_LOCAL_MACHINE

    SOFTWARE

    ODBC

    Odbcinst.ini

SQLRemoveDriver 는 실제로 파일을 제거하지 않습니다. 호출 프로그램은 파일을 삭제하고 파일 사용 횟수를 유지 관리합니다. 구성 요소 사용 횟수와 파일 사용 횟수가 모두 0에 도달한 후에만 파일이 물리적으로 삭제됩니다. 구성 요소의 일부 파일은 삭제할 수 있으며 다른 파일은 파일 사용 횟수가 증가한 다른 애플리케이션에서 사용되는지 여부에 따라 삭제되지 않습니다.

SQLRemoveDriver 는 업그레이드 프로세스의 일부로도 호출됩니다. 애플리케이션이 업그레이드를 수행해야 한다는 것을 감지하고 이전에 드라이버를 설치한 경우 드라이버를 제거한 다음 다시 설치해야 합니다. 먼저 구성 요소 사용 횟수를 감소하기 위해 SQLRemoveDriver 를 호출한 다음 , 구성 요소 사용 횟수를 증가하기 위해 SQLInstallDriverEx 를 호출해야 합니다. 애플리케이션 설치 프로그램은 이전 파일을 새 파일로 바꿔야 합니다. 파일 사용 횟수는 동일하게 유지되며 이전 버전 파일을 사용하는 다른 애플리케이션은 이제 최신 버전을 사용합니다.

추가 정보 참조
드라이버 추가, 수정 또는 제거 ConfigDriver (설치 DLL에서)
드라이버 추가, 수정 또는 제거 SQLConfigDriver
드라이버 설치 SQLInstallDriverEx