IT이야기

[Microsoft] [ODBC 드라이버 관리자] 데이터 원본 이름이없고 기본 드라이버가 지정되지 않았습니다.

cyworld 2021. 4. 29. 21:24
반응형

[Microsoft] [ODBC 드라이버 관리자] 데이터 원본 이름이없고 기본 드라이버가 지정되지 않았습니다.


PostgreSQL 9를 사용하는 Windows XP Pro에서 처음으로 프로그램을 열려고합니다. 다음과 같은 오류 메시지가 나타납니다.

프로덕션 데이터베이스에 로그인하거나 작성하는 중에 문제가 발생했습니다. 세부 정보 : [Microsoft] [ODBC 드라이버 관리자] 데이터 원본 이름을 찾을 수없고 기본 드라이버가 지정되지 않았습니다.

내 ODBC 관리자에 사용자 DSN 및 시스템 DSN 목록이 있습니다. 나는 그것이 도움이되는지 확인하기 위해 postgres odbc 드라이버를 설치하려고 시도했지만 그렇지 않았습니다.

프로그램 파일에 "OLE DB Provider = MSDASQL"이라는 줄이있는 connect.dat 파일이 있습니다. 이 항목을 변경하면 "공급자를 찾을 수 없습니다. 제대로 설치되지 않았을 수 있습니다"라는 오류 메시지가 변경됩니다.

제대로 작동하도록하려면 어떤 공급자 이름을 삽입해야하는지 모르겠습니다. 이 오류에 대한 광범위한 연구를 수행했지만 아무 소용이 없습니다. 어떤 제안이라도 대단히 감사하겠습니다.


  1. 오류 참조 : [Microsoft] [ODBC 드라이버 관리자] 데이터 원본 이름을 찾을 수없고 기본 드라이버가 지정되지 않았습니다.

    이 오류는 연결 구성에서 지정하는 DSN (데이터 소스 이름)이 Windows 레지스트리에서 찾을 수 없음을 의미합니다.

    • ODBC 드라이버의 실행 및 연결 형식 (ELF)이 응용 프로그램과 동일해야합니다. 즉, 32 비트 응용 프로그램 용 32 비트 드라이버 또는 64 비트 응용 프로그램 용 64 비트 드라이버가 필요합니다.

      일치하지 않는 경우 32 비트 드라이버에 대해 DSN을 구성 할 수 있으며 64 비트 응용 프로그램에서 해당 DSN을 사용하려고하면 레지스트리가 다른 위치에 DSN 정보를 보유하기 때문에 DSN을 찾을 수 없습니다. ELF에 따라 다릅니다 (32 비트 대 64 비트).

      올바른 ODBC 관리자 도구를 사용하고 있는지 확인하십시오. 32 비트 및 64 비트 Windows에서 기본 ODBC 관리자 도구는 c:\Windows\System32\odbcad32.exe. 그러나 64 비트 Windows 시스템에서 기본값은 64 비트 버전입니다. 64 비트 Windows 시스템에서 32 비트 ODBC 관리자 도구를 사용해야하는 경우 여기에있는 도구를 실행해야합니다.C:\Windows\SysWOW64\odbcad32.exe

      사용자가 기본 64 비트 ODBC 관리자를 사용하여 DSN을 구성 할 때 이러한 문제가 발생하는 것을 볼 수 있습니다. 32 비트 DSN 용이라고 생각합니다. 그런 다음 32 비트 응용 프로그램이 해당 DSN을 사용하여 연결을 시도하면 "데이터 원본을 찾을 수 없습니다 ..."가 발생합니다.

    • DSN의 철자가 ODBC 관리자에서 구성된 DSN의 철자와 일치하는지 확인하는 것도 중요합니다. 하나의 문자가 잘못되면 DSN이 일치하지 않을 수 있습니다.

      다음은 몇 가지 추가 세부 정보를 제공 할 수있는 기사입니다.

      그러나 귀하가 보유한 제품 브랜드와 동일하지 않을 수 있습니다. ODBC 데이터 소스 이름을 사용할 때 발생하는 일반적인 문제입니다.

  2. 질문의 OLE DB 공급자 부분과 관련하여 응용 프로그램이 지정된 공급자에 대한 구성을 찾을 수없는 유사한 유형의 문제인 것 같습니다.


시스템 DSN 대신 사용자 DSN에 데이터 원본 이름이 있기 때문에이 오류가 발생했습니다. 여기에 이미지 설명 입력


문제는 대신, 예를 들어 드라이버 이름에서 수 있습니다 DRIVER={MySQL ODBC 5.3 Driver}하려고 DRIVER={MySQL ODBC 5.3 Unicode Driver}관리 도구에서 드라이버의 이름을 볼 수 있습니다 당신을


다음을 사용하여 데이터 기반 테스트로 이것을 얻었습니다.

Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)

문제는 위의 드라이버 만 32 비트라는 것입니다. Visual Studio testsettings 파일을 64 비트 전용 응용 프로그램을 테스트하기 위해 64 비트로 전환했습니다.

testsettings 파일에서 32 비트로 다시 전환하면 문제가 해결되었습니다.

테스트 설정 파일 사용


위의 방법을 시도했지만 내 문제는 | DSN의 이름으로 (데이터를 오지 않도록 각 DB에 하나씩 여러 ODBC 커넥터가 있습니다)

나는 대체 | (파이프) _와 함께 이제 모두 잘 작동합니다.

Alteryx에서 SQL Server를 호출하려고했습니다.


여기의 지시에 따라 http://help.loftware.com/pages/viewpage.action?pageId=27099554을 내가 설치했다 마이크로 소프트 액세스 데이터베이스 엔진 2010 재배포를 내가 엑셀 드라이버가 내가 원하는 DSN없는 연결을 사용하기 위해 설치했다 전에 Perl에서 사용합니다.


IIS를 사용하는 경우 "application pools"-> "DefaultAppPool"-> "application pools default value"-> "32-Bit-application-activ"-> set false를 시도해야합니다.

참조 URL : https://stackoverflow.com/questions/17115632/microsoftodbc-driver-manager-data-source-name-not-found-and-no-default-drive

반응형