Ошибка при доступе приложения к данным Sage Line 50 через ODBC

Я разработал простое консольное приложение на C# для извлечения некоторых данных из таблиц в Sage Line 50 и загрузки данных на веб-сервер. Он использует ODBC-соединение в Windows 7 x64 и работает отлично. Данные аккаунтов Sage расположены на подключенном сетевом диске.

На компьютере, на котором я разработал / протестировал это программное обеспечение, установлена ​​полная версия Sage Line 50 2011 с драйверами ODBC v17 и применены все обновления.

В конечном итоге приложение будет работать как запланированное задание на нашем файловом сервере, но когда я пытаюсь запустить код на нашем файловом сервере Windows 2008 R2 (тот же файловый сервер, на котором размещены данные учетных записей Sage), из драйвера ODBC выдается исключение, следующее:

ERROR [28000] User ID or Password invalid
ERROR [01000] The driver returned invalid (or failed to return) SQL_DRIVER_ODBC_VER: 2.00
ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed
ERROR [01000] [Microsoft][ODBC Driver Manager] The driver doesn't support the version of ODBC behavior that the application requested (see SQLSetEnvAttr).

Ошибка пароля неверна, так как я знаю, что пароль правильный. Конфигурация ODBC также была подтверждена.

Я только установил драйвер Sage ODBC с установочного компакт-диска, так как не хотел, чтобы на нашем сервере было установлено полное приложение Sage, и заметил, что файл S17DBC32.dll отличается от версии, установленной на моей рабочей станции (возможно, из-за автоматических обновлений, которые устанавливают учетные записи Sage). Я попытался скопировать этот новый файл поверх исходного файла на нашем файловом сервере и воссоздал конфигурацию ODBC, но это не помогает.

Я не перезагружал сервер с тех пор, как скопировал DLL-файл поверх старого (это рабочий сервер). Требует ли сервер перезагрузки, чтобы новая DLL вступила в силу, или есть другой способ вызвать это?

Может быть, я лаю не на том дереве, версия DLL драйвера Sage ODBC не имеет значения? Любая помощь с благодарностью.


редактировать

Была возможность перезагрузить сервер, и новая DLL ничего не изменила. Я все еще вижу ту же ошибку.

3 ответа

Решение

В итоге я прибег к полной установке учетных записей Sage на сервере (yuk!), Применил автоматические обновления, и теперь мое приложение работает нормально.

Была такая же проблема на чистой установке Windows 8. Исправление заключалось в установке среды выполнения.net 3.5.

Windows фактически предложила это сама, после того, как мое приложение.net вышло из строя с той же ошибкой (та же ошибка, сгенерированная MS-Access, не вызвала установку).

Вам нужно установить 32-битный драйвер и, если вы обращаетесь к ODBC, зайдя в панель управления, которая является 64-битной версией, вам нужно C:\Windows\SysWOW64\odbcad32.exe

Другие вопросы по тегам