Windows Server 2008上的dBASE ODBC驱动程序

时间:2010-01-27 15:07:57

标签: c# odbc windows-server-2008 dbase

我有一个C#winforms应用程序,可以在我们所有的XP机器上正常运行。我们想把它放在一个新的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驱动程序管理器]未找到数据源名称且未指定默认驱动程序

如果我查看64位ODBC数据源管理器,那里没有dBASE驱动程序 - 但在32位(C:\ Windows \ SysWOW64 \ odbcad32.exe)中,它们是 - 我如何获取应用程序使用32位驱动程序?

1 个答案:

答案 0 :(得分:2)

无法在64位应用程序中使用32位ODBC驱动程序。 64位进程无法调用32位DLL(不是直接调用)。 Microsoft有一篇关于可能有用的64-bit ODBC administrator知识库文章。