32-разрядные текстовые драйверы (Microsoft Access, Microsoft Excel и текстовые файлы) из 64-разрядного приложения в Windows 7 - PullRequest
3 голосов
/ 11 августа 2010

Привет, у меня есть приложение, разработанное на XP с драйверами Text ODBC. Но когда я развернул на Win 7 с Office 2007, у меня возникли проблемы с подключением.

<add key="SQLConnection.TextConnectionString" value="Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\Data\;Extensions=asc,csv,tab,txt;Persist Security Info=False" />

ОШИБКА [IM002] [Microsoft] [Диспетчер драйверов ODBC] Не найдено имя источника данных и не указан драйвер по умолчанию


Я погуглил все решения, такие как установка следующего

http://blogs.msdn.com/b/sqlblog/archive/2009/12/29/how-to-connect-to-file-based-data-sources-microsoft-access-microsoft-excel-and-text-files-from-a-64-bit-application.aspx

Microsoft Access Database Engine 2010 распространяемый (32-разрядный)

2007 Драйвер системы Office: компоненты для подключения к данным

после всего этого в моих источниках данных (ODBC) он по-прежнему показывает только «собственный клиент SQL / собственный сервер SQL / собственный сервер SQL»

в C: \ Windows \ SysWOW64 \ odbcad32.exe

Я могу видеть все драйверы x32, но как я могу изменить строки подключения для доступа к 32-разрядным драйверам Microsoft Text или есть какие-нибудь альтернативные решения? Спасибо

Ответы [ 5 ]

9 голосов
/ 11 августа 2010

Я почти уверен, что он будет работать автоматически (даже на 64-битной машине), если процесс выполнения 32-битный.

Попробуйте перекомпилировать специально для x86.

6 голосов
/ 11 августа 2010

Требуется распространяемый 64-разрядный Microsoft Access Database Engine 2010

http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en

Тогда попробуйте

Microsoft Access Text Driver (*.txt, *.csv)

для имени водителя.

AFAIK, все 64-разрядные драйверы ODBC из 64-разрядного распространяемого пакета Microsoft Access Database Engine 2010 немного изменили имена своих драйверов, я думаю, чтобы отличить их от своих 32-разрядных аналогов.

3 голосов
/ 16 июня 2011

У меня была именно эта проблема, и перекомпиляция для целевой x86 специально работала!Обратите внимание, что для этого мне нужно было указать целевой процессор в диалоговом окне расширенных настроек компилятора - меню «Проект»> «Свойства»> вкладка «Компиляция»> кнопка «Дополнительные параметры компиляции».

Прежде чем найти эту запись в форуме, я установил MicrosoftAccess Database Engine 2010 распространяемый (32-разрядный), но я не знаю, оказал ли это какое-либо влияние на эту проблему.

Как упоминалось выше, когда выполняющийся процесс является 32-разрядным (в данном случае компиляция с x86)делает приложение 32-разрядным) приложение будет использовать драйверы из C: \ Windows \ SysWOW64 \ odbcad32.exe.

Спасибо, Кэмерон.

0 голосов
/ 17 февраля 2019

Многие люди, кажется, отчаялись здесь, я хочу предложить несколько решений.Но сначала я хочу подчеркнуть, что это за устаревшая запатентованная идея мусора из 90-х.

  1. Использование Unix ODBC для размещения текстового файла из Linux, который документы(кажется) утверждают, что поддерживают реализацию текстового драйвера Microsoft

  2. Конечно, лучшим вариантом будет импортировать CSV в PostgreSQL.

    1. Я бы предложил просто сделать это с \COPY и отбросить понятие CSV.
    2. Вы можете поддерживать CSV с PostgreSQL, действующим в качестве сервера с Foreign Data Wrapper (file_fdw).
  3. Если вы не хотите запускать СУБД, современный способ - использовать SQLite.Это хорошая идея, если вам не нужна модель сервера / клиента.

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

0 голосов
/ 30 сентября 2015

Мы делали это из ASP.Net и работали в Windows 2012, просто переместив один сайт в отдельный пул приложений, для которого в расширенных настройках пула приложений был включен «32-битный режим». *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...