2010-01-27 2 views
0

모든 XP 컴퓨터에서 잘 작동하는 C# winforms 응용 프로그램이 있습니다. 우리는 새로운 승리 2008 64 비트 서버에 넣어 싶어 다음과 같은 코드를 나누기 :Windows Server 2008 dBASE ODBC 드라이버

using (OdbcConnection oConn = new OdbcConnection()) 
{ 
    oConn.ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=" + filePath + ";Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;"; 
    oConn.Open(); 

    OdbcCommand oCmd = oConn.CreateCommand(); 
    oCmd.CommandText = "SELECT DISTINCT Mid(POSTCODE,1,Len(POSTCODE)-2) AS sector FROM " + shortfilename + ".dbf;"; 

    OdbcDataReader dr = oCmd.ExecuteReader(); 
    try 
    { 
     while (dr.Read()) 
     { 
      lstSectors.Items.Add(dr.GetString(0)); 
     } 
    } 
    catch 
    { 
     string err = "Error!"; 
    } 
    finally { dr.Close(); } 
} 

내가 오류는 다음과 같습니다

ERROR [IM002] [마이크로 소프트] [ODBC 드라이버 관리자] 데이터 소스 이름을 찾을 수없고 기본 드라이버가 지정되지 않았습니다.

64 비트 ODBC 데이터 소스 관리자를 보면 dBASE 드라이버가 없지만 32 비트 (C : \ Windows \ SysWOW64 \ odbcad32.exe) , 그들은 32 비트 드라이버를 사용하는 응용 프로그램을 어떻게 얻습니까?

많은 감사

답변

2

64 비트 응용 프로그램에서 32 비트 ODBC 드라이버를 사용할 수 없습니다. 64 비트 프로세스는 32 비트 DLL을 호출 할 수 없습니다 (어쨌든 직접 사용하지는 않음). Microsoft는 도움이 될 64-bit ODBC administrator에 대한 KB 기사를 제공합니다.

+0

64 비트 OS를 처음 사용하기 때문에 이러한 것에 대한 지식이 부족하고 무지합니다. 응용 프로그램은 VS2005로 작성되었으며 VS2008은 서버에 있으므로 열었습니다. 이 버전의 앱을 64 비트로 만들 수 있습니까? 기사를 살펴보면 해결 방법은 32 비트 관리 도구에서 데이터 소스를 만드는 것이지만 문제점은 .dbf 파일을 쿼리 할 때마다 파일 위치가 바뀌므로 어떻게해야합니까? 데이터 소스 ..? Thanks – leddy

+0

"Platform Target"을 "Any CPU"로 설정하여 프로젝트를 빌드하면 64 비트 OS에서 64 비트 프로세스로 실행됩니다 (64 비트 드라이버를 찾음). 32 비트가되도록 강제 실행할 수 있으며 32 비트 드라이버를 찾습니다. 하지만 "모든 cpu"옵션이 최고라고 생각합니다. 64 비트 드라이버를 설치하지 않은 것 같습니다. windows \ system32 \ odbcad32.exe를 실행하여 존재하는지 확인하십시오. 그렇지 않은 경우 mdac v7 설치를 실행하십시오. 그것들은 그 버전에 포함되기로되어 있습니다. –

관련 문제