비슷한 질문이 이전에 있지만 내 문제를 해결할 수없는 것으로 알고 있습니다. 아키텍처 불일치 예외는 Db- 드라이버와 VS- 프로젝트가 서로 다른 플랫폼 대상 (32, 64 비트)을 가질 때 프롬프트됩니다. 여태까지는 그런대로 잘됐다.ODBC DSN을 통해 Visual Studio를 Virtuoso 7.1에 연결하면 아키텍처가 일치하지 않는 예외가 발생했습니다
먼저 시도 : 전체 솔루션의 플랫폼 목표를 32로 변경 한 후 64 비트로 변경했습니다. -> 두 경우 모두 동일한 오류가 발생합니다. (VS가 프로젝트를 특정 아키텍처로 간주하는 상황이 확실하지 않습니다. 어쩌면 누군가가이 지점을 자세히 설명 할 수 있습니다 ...)
이제 나는 Virtuoso 7.1 용 드라이버 및 DSN. Virtuoso (link)의 오픈 소스 버전 설치 지침에 따라, 나는 'regsvr32 virtodbc.dll'을 사용하여/lib에 드라이버를 등록했습니다. 이것은 신속하게 32 비트 드라이버로 추가했습니다 (system32/odbcad32.exe 사용시 표시됨). DSN에서이 드라이버를 사용하면 아키텍처 불일치가 발생합니다.
64 비트 버전의 regsvr32 버전을 사용하여 동일한 dll을 성공적으로 등록하려고 시도했습니다. 적절한 64 비트 DSN을 추가 할 수 없기 때문에 32 비트 대상 CPU 사용에 만족할 것입니다. 설명한 것처럼 virtodbc.dll의 32 비트 버전은 VS의 모든 대상 플랫폼 구성에서 아키텍처 불일치를 유발합니다.
클라이언트 연결 키트 (link)를 설치하여 64 비트 드라이버 만 제공한다고도합니다. 오직 자동으로 설치된 드라이버와 DSN이 32 비트 드라이버로 제공된다는 것을 알기 위해서만 (의미 : 64 비트 버전이 아닌 32 비트 버전의 odbcad32.exe를 사용할 때만 볼 수 있음)
문제가 어디에 있는지 잘 모르겠다. (VS 또는 Virtuoso 드라이버) 나는 당신의 제안에 감사 할 것이다.
이전 드라이버 (6.0.3)에서 작동했습니다. 가능한 부작용이있는 유일한 해결책이므로 '올바른'답변으로 표시하는 것을 주저합니다. 하지만 지금은 고마워. – chile