2014-05-14 2 views
0

이 문제는 저를 미치게 만들었지 만 그물에서 다른 곳에서는 찾을 수없는 해킹 해결책을 발견했습니다.데이터 소스 이름을 찾을 수없고 기본 드라이버가 지정되지 않았습니다. 잘못된 TargetCPU 설정으로 인한 오류가 발생했습니다.

해결 방법 : 32 비트/64 비트의 알려진 ODBC 문제를 피하려면 대상 CPU를 x86으로 변경하십시오.

AnyCPU 또는 64 비트를 사용할 수 있도록 문제를 해결하는 방법을 모르겠습니다. 당분간 나는 ODBC를 사용하는 한 32 비트로 고정되어있는 것처럼 보입니다. 이상하게도 실제 코드를 실행하는 외부 라이브러리는 AnyCPU를 사용하여 컴파일됩니다. 그러나 소비 프로젝트는 X86에 있어야합니다.

해결되지 않은 질문이 너무 많아 답변으로 표시하지 않겠습니다. 내 특정 문제에

배경 맥락에서 물건을 넣어 :

나는 내가 만든 외부 라이브러리를 사용하는 프로젝트를했다. 이 라이브러리는 여전히 ADODB를 많이 사용합니다. 내 프로젝트는 이상한 일을하고 있었으므로 디버깅에 도움이되도록 가능한 한 많은 기본 설정을 유지하면서 처음부터 다시 빌드했다.

글쎄, 위의 오류로 인해 외부 라이브러리의 ADODB.Connection.Open() 함수가 실패했습니다. 이전 프로젝트는 정상적으로 작동했습니다. 새로운 프로젝트가 오류를 던졌습니다. 차이점은 대상 CPU입니다.

64 비트 대 32 비트 DSN에 대한 참조를 계속 보았습니다.이 모든 DSN은 (필자가) 알고 있지만 DSN이 적게 사용되었습니다.

외부 라이브러리가 AnyCPU로 컴파일되어 있고 AnyCPU로 컴파일 된 다른 프로젝트도 있지만 다른 프로젝트에서는 ADODB 코드가 발생하지 않았다고 생각합니다.

답변

0

COM은 32 비트 모드에서만 지원되기 때문에 OleDb와 같은 COM 유형 공급자를 사용하는 ODBC는 사용할 수 없습니다.

관련 문제