0

すべての XP マシンで正常に動作する C# winforms アプリがあります。新しい Win 2008 64 ビット サーバーに配置したいのですが、次のコードで壊れます。

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(); }
}

私が得るエラーは次のとおりです。

エラー [IM002] [Microsoft][ODBC Driver Manager] データ ソース名が見つからず、既定のドライバーが指定されていません

64 ビットの ODBC Data Source Admin を見ると、そこには dBASE ドライバーはありませんが、32 ビット (C:\Windows\SysWOW64\odbcad32.exe) では、アプリケーションで 32 を使用するにはどうすればよいですか?ビットドライバー?

4

1 に答える 1

2

64 ビット アプリケーションから 32 ビット ODBC ドライバーを使用することはできません。64 ビット プロセスは、32 ビット DLL を呼び出すことはできません (とにかく直接ではありません)。Microsoft には、 64 ビット ODBC アドミニストレーターに関する KB 記事があり、役立つ可能性があります。

于 2010-01-27T15:50:32.630 に答える