Драйверы dBASE ODBC для Windows Server 2008 - PullRequest
0 голосов
/ 27 января 2010

У меня есть приложение C # winforms, которое прекрасно работает на всех наших компьютерах с XP. Мы хотим установить его на новый 64-битный сервер Win 2008, и он будет разбит на следующий код:

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 Ответ

2 голосов
/ 27 января 2010

Невозможно использовать 32-разрядный драйвер ODBC из 64-разрядного приложения. 64-разрядные процессы не могут обращаться к 32-разрядным библиотекам DLL (во всяком случае, напрямую). У Microsoft есть статья базы знаний об 64-битном администраторе ODBC , которая может помочь.

...