2016-10-09 3 views
0

응용 프로그램에 대해 새로운 postgres odbc 연결을 설정하려고합니다.postgres odbc 연결에 실패했습니다.

이 작업은 32 비트 Windows 7 시스템에서 수행됩니다. 최신 postgresql 9.6 & psqlodbc 0905를 설치했는데 오류가 없었습니다. 포스트 그레스 로그인에 내가 ODBC 연결 문자열과 연결을 테스트를 추가하면 다음과 같은 오류와 함께 실패 여기

Test connection failed because of an error in initialized provider. Specified driver could not be loaded due to system error 182: (PostgreSQL UNICODE, C:\Program Files\psqlODBC\0905\bin\psqlodbc35w.dll)

연결 문자열입니다 : 나는 다음 Visual C를 설치

Driver={PostgreSQL UNICODE};Server=127.0.0.1;Port=5432;Database=postgres; Uid=postgres;Pwd=postgres;

++ 재배포 포장기 버전 2008을 2010 년 후. 상자를 재부팅했습니다. 여전히 같은 문제입니다.

Postgres + odbc + 다른 설치는 오류없이 완료되었습니다.

너무 실망 스럽습니다.

제발 ..이 문제를 해결하는 방법에 대한 아이디어가 도움이 될 것입니다.

업데이트는 : 3. 제거 된 독립형 psqlodbc이 설치 시작시 & psdqlodbc 버전 2. 추가 된 psqlodbc 경로 PATH의 ENV 변수에 1. 설치된 오래된 포스트 그레스,과 PostgreSQL 패키지에서 Stackbuilder 설치 : 나는 다음을 테스트 한 psqlodbc 구성 요소를 다운로드하고 설치하십시오.

이 모두가 유용하지는 않습니다.

최종 업데이트 : psqlodbc_09_03_0400을 사용하여이 문제를 해결할 수있었습니다. 어떤 이유로 든 다른 버전에서도 오류가 발생했습니다.

답변

1

분명히, 오류 코드의 Microsoft index에 따라, 오류 (182) 내가 생각 this answer의 도움으로 PostgreSQL의 ODBC 드라이버가 다른 DLL을로드하고 존재하지 않는 그 안에서 함수를 호출하려고하는 것을 의미 ERROR_INVALID_ORDINAL을 의미한다.

가장 큰 원인은 시스템이 psqlodbc가 종속 된 잘못된 버전의 DLL을로드하고 있기 때문입니다. 사실 this thread 다른 사람이 같은 문제를 겪고있는 곳을 발견했습니다 (2005 년에 다시 돌아 왔음).

psqlodbc가 의존하는 DLL 중 하나 또는 다른 버전의 psqlodbc가 포함 된 다른 패키지를 설치 한 경우 발생할 수 있습니다.

psqlodbc 드라이버가있는 디렉토리를 앞면에 놓고 확인하려면이 창 검색 경로를 변경하십시오. 그게 효과가 있다면 당신은 정확하게 어떤 DLL이 충돌하는지 찾을 수있을 때까지 문제를 줄이려고 시도하고 가능한 경우 제거하십시오.

사용중인 psqlodbc 패키지에 약간의 패키징 문제가있을 수도 있습니다.이 경우 해당 패키지를 제거하고 이전 버전을 설치하십시오.

+0

감사합니다. @harmic.나는 그 답을 확인하고 이미 psqlodbc dir에 경로를 추가하고 psqlodbc와 postgres의 이전 버전을 설치했습니다. 디버거 로그에서 서수 오류가 확인됩니다 - 예외 C0000138 (ORDINAL NOT FOUND). 오류가 변경되지 않았습니다. 여전히 ODBC 연결을 추가 할 수 없습니다. – Sunshine

+0

@Sunshine 질문에 디버거 로그를 추가 할 수 있습니까? 또한이 페이지에서 언급 한대로 LoadLibrary 디버깅을 켜는 것이 좋습니다. https://blogs.msdn.microsoft.com/junfeng/2006/11/20/debugging-loadlibrary-failures/ – harmic

+0

문제가있는 것 같습니다. 새로운 psqlodbc가 설치됩니다. 여러 번 시도한 후에, 다른 이전 버전 인 psqlodbc_09_03_0400을 선택했는데 성공했습니다! 왜, bcos, 전에, 나는 이미 작동하지 않는 여러 다른 psqlodbc 버전을 시도했는지 모르겠다. 귀하의 제안에 감사드립니다. 감사합니다.... – Sunshine

0

최종 업데이트 : psqlodbc_09_03_0400을 사용하여이 문제를 해결할 수있었습니다. 어떤 이유로 든 다른 버전에서도 오류가 발생했습니다.

관련 문제