1

Мне нужен совет, так как я столкнулся с проблемой, и до сих пор не смог найти решение.

У нас есть набор отчетов, разработанных в MS Excel, которые используют файл DSN для подключения к источникам данных для извлечения данных. Они отлично работают на 32-битных и 64-битных системах.

Тем не менее, мы переходим к среде терминального сервера с использованием Windows 2008 R2 64Bit

Отчеты не запускаются с использованием DSN в этой среде, если у нас только 32-битные драйверы установлены и настроены в настройках ODBC. Как только мы установим 64-битные драйверы, программное обеспечение будет работать.

Есть ли способ или способ заставить Excel или файл DSN НЕ использовать 64-битный драйвер, но заставить его использовать 32-битный драйвер?

2 ответа2

2

мы переходим к терминальной серверной среде с использованием Windows 2008 R2 64Bit.

Это само по себе не вызовет проблем, вам нужно установить 64-разрядную версию Microsoft Office 2010. У вас должна быть веская причина для установки 64-разрядной версии, Microsoft устанавливает 32-разрядную версию по умолчанию на 64-разрядных компьютерах по какой-то причине - все перестает работать.

Есть ли способ / метод получения Excel или DSN-файла, чтобы НЕ использовать 64-битный драйвер, но заставить его использовать 32-битный драйвер.

Нет, но для подключения в приложениях Office просто установите 64-разрядную версию ACE и убедитесь, что строки подключения ссылаются на Microsoft Access Driver (*.mdb, *.accdb).

SQL Server, Oracle и целый ряд других распространенных СУБД имеют 64-разрядные драйверы ODBC, поэтому я не вижу, как между 64-разрядным ACE и собственным клиентом /ODAC SQL вы не можете подключиться к чему-либо.

Если это все еще не работает, в этом сообщении на форуме есть механизм общего назначения для "проксирования" x64 -> x86 через связанные серверы SQL Server. Заменить Microsoft.Jet.OLEDB.4.0 и другие параметры (чтобы сделать его связанным сервером через ODBC, а не ODBC) с вашим поставщиком ODBC в зависимости от ситуации.

1

ОП ответил на свой вопрос

К сожалению, нет способа сделать то, что я хочу, без множества очень неприятных и не на 100% совершенных хаков.

Если вам нужен доступ к 32-битным источникам данных ODBC, рассматриваемое приложение должно быть 32-битным.

Вот ссылка на только одно сообщение на форуме, которое я нашел относительно этого типа проблемы. Похоже, что единственный способ, которым я смог бы добиться этого, - это удалить 64-битную версию офиса и установить вместо нее 32-битную версию.

http://social.msdn.microsoft.com/Forums/en-US/accessdev/thread/5108f337-f06a-4518-afe3-d3c1abd040ef/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .