27.01.2011, 12:11 | #1 |
Модератор
|
Метод "open" в COM-объекте класса "ADODB.Connection" возвратил код ошибки 0x80004005 (E_FAIL)
Есть проблема с пакетником на рабочем сервере.
Получаю ошибку: Метод "open" в COM-объекте класса "ADODB.Connection" возвратил код ошибки 0x80004005 (E_FAIL), который означает: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию. Суть пакетника: подключится к DBF файлам на удаленном сервере и прочитать данные. Проект один и тот же на DEV, TEST, и рабочей Аксапте. На DEV, TEST отрабатывает нормально в пакетном режиме. (ОС Windows Server 2003 SP2 x86) На рабочей аксапте (ОС Windows Server 2008 SP2 64-bit) нормально отрабатывает только в ручном режиме, а пакетном режиме валится с ошибкой. На что обратить внимание для решения проблемы? P.S. Kernal version: 5.0.1500.3761 Application version: 5.0.1500.2985
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
27.01.2011, 12:18 | #2 |
Гость
|
|
|
27.01.2011, 13:00 | #3 |
Модератор
|
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
27.01.2011, 13:06 | #4 |
Гость
|
Оксапта есть 3-tier приложение - Клиент, АОС и БД.
Х++ код может исполняться на двух из них - Клиент и АОС. Дальше, надеюсь, сам догадаешься. |
|
27.01.2011, 13:25 | #5 |
Модератор
|
Цитата:
У меня две аксапты DEV и TEST нормально отрабатывают. Похоже причина все таки в разрядности ОС x86 или 64-bit. Использую драйвер Microsoft.Jet.OLEDB.4.0 На Windows Server 2003 имеем список драйверов На Windows Server 2008 драйвер Microsoft.Jet.OLEDB.4.0 не видно. Помогите разобраться и понять как добавить драйвер Microsoft.Jet.OLEDB.4.0 в Windows Server 2008. P.S. что то я запутался
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
27.01.2011, 13:41 | #6 |
Участник
|
Возможно, что использовать этот драйвер ODBC на стороне АОС (в случае x64 платформы) вообще не получится. Мне этого не удалось. Пришлось перевести пакетную обработку функции, использующую ODBC доступ к DBF в режим запуска через клиента (так же как это работало в Ax 3.0)
Может быть кому то удалось найти компонент (ODBC, NET) который может "нормально" читать и писать DBF в режиме x64 ? "нормально" имеется ввиду: - высокая скорость чтения - записи - возможность программно устанавливать кодировку (codePage) файла DBF |
|
27.01.2011, 13:47 | #7 |
Гость
|
А сообщение на это не намекало?
Кагбы логично сначала, проверить то, что написано в сообщении об ошибке |
|
27.01.2011, 14:30 | #8 |
Модератор
|
Похоже ты прав.
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
31.01.2011, 18:02 | #9 |
Модератор
|
Цитата:
Сообщение от Poleax
Есть проблема с пакетником на рабочем сервере.
Получаю ошибку: Метод "open" в COM-объекте класса "ADODB.Connection" возвратил код ошибки 0x80004005 (E_FAIL), который означает: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию. Цитата:
Мы не предоставляем 64-разрядной версии поставщика Microsoft OLE DB для Jet. Кроме того мы не предоставляем 64-разрядной версии драйвера Jet ODBC. При использовании поставщика Microsoft OLE DB для Jet или драйвер ODBC для Jet для подключения к источнику данных в 64-разрядной среде возникают различные проблемы.
Ссылки по теме:
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
01.12.2011, 17:13 | #10 |
Участник
|
Удалось заставить работать с 64-битными Windows и AOS-ом с помощью Microsoft ACE OLEDB, устанавливаемому с Microsoft Access Database Engine 2010 Redistributable.
ConnectionString при этом такой: X++: strfmt("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%1;Extended Properties=dBASE IV;Persist Security Info=False", _path) |
|
|
За это сообщение автора поблагодарили: Ace of Database (3), gl00mie (2). |
01.12.2011, 21:28 | #11 |
Участник
|
См. также Обработка DBF через .net
|
|
02.12.2011, 08:40 | #12 |
Участник
|
То же сталкнулся в 1С с подобной проблемой.
Смыл такой получился. Сервер 1С запускался в 64 разрядном режиме, соответственно и к Access он обращался тоже в 64 разрядном режиме через 64 разрядный ODBC. Не решаемой проблемой оказалось, если в базе есть связь с Access2.0 и ты как раз обращаешся к этой таблице. Не хочет выполнять запрос и всё тут. Если к таблицам более новых версий, то там всё нормально. А так как на предприятие до сих пор хватает таких баз, решили отказатся вообще от этой затеи. Чтоб не думалось то ли взлетит то ли нет. И так два дня убил на это. Теперь пакетчик крутится на отдельном компе в клиентском режиме. MS - must die
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
02.12.2011, 09:02 | #13 |
Участник
|
gl00mie, да тоже был вариант найти .net-компонент для импорта-экспорта dbf, ну или в крайнем случае написать таковой. Отлично, что он уже написан, найден, доработан и даже обкатан. Для текущих скромных выгрузок нам ACE сгодится, но я возьму на заметку на будущее.
miklenew, где-то встречал вариант установки промежуточного звена в виде SQL Server (возможно даже Express подойдет). Т.е. в нем создается линк на dbf (или mdb в вашем случае), а AOS в свою очередь линкуется к SQL Server-у. Как это практически настраивается и заработает ли - не знаю, просто встретил мысль, но копать не стал, может вам пригодится. |
|
06.09.2013, 16:53 | #14 |
Участник
|
Цитата:
Метод "Open" в COM-объекте класса "ADODB.Connection" возвратил код ошибки 0x80004005 (E_FAIL), который означает: Невозможно найти устанавливаемый ISAM. На сервере Microsoft Access Database Engine 2010 Redistributable установлен, 64-битная версия.
__________________
Дмитрий |
|
01.10.2013, 14:15 | #15 |
Участник
|
Цитата:
Сообщение от leva
Удалось заставить работать с 64-битными Windows и AOS-ом с помощью Microsoft ACE OLEDB, устанавливаемому с Microsoft Access Database Engine 2010 Redistributable.
__________________
Дмитрий |
|
Теги |
.net, 64-bit, dbf, odbc, законченный пример, полезное, экспорт/импорт |
|
|