Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 x86 openrowset Microsoft.Jet.OLEDB.4.0  [new]
неDBA_
Guest
Добрый день! Встала задача осуществить миграцию с MS SQL 2000 на

SQL 2005 (Microsoft SQL Server 2005 - 9.00.1399.06 (X64) Oct 14 2005 00:35:21 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)

Всё бы ничего, да некоторые хранимки 2000 "общаются" с dbf файлами используя 32 разрядные (а других то и не бывает) Microsoft.Jet.OLEDB.4.0 и MDAC через Openrowset. Прочитав [url= http://msdn.microsoft.com/en-us/library/ms141766(SQL.90).aspx]BOL[/url] сделал следующее (хоть и бесполезно):
1 - создал тестовый package (Execute Sql Task Editor, с вызовом одной из "Openrowset" процедур)
2 - в проекте SSIS установил Debug Options Run64BitRuntime = false, сохранил package в msdb
3 - создал тестовый джоб с типом Operating System (CmdExec) , который обращается к 32-битной DTExec.exe (вызов c:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\DTExec.exe" с вызовом соотв package на сервере)
package запустился в 32 разрядном окружении с ошибкой:

Executed as user: ...00.1399.06 for 32-bit ..Code: 0xC002F210 ...Execute SQL Task Description: Executing the query "exec MyOpenRowSetStoredProc" failed with the following error: "Cannot create an instance of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".".

Вообщем то сообщение понятное - не находится драйвер, да и выполнение
xp_enum_oledb_providers
говорит об этом.
Возникает вопрос - а как "найти" эти драйвера (зарегистрировать какие то dll или как ) при запуске в 32 разрядном режиме?
Сорри возможно за простые вопросы, но я не администратор (ни системный, ни DBA)
PS Можно конечно пойти другим более трудоёмким путём - (dbf в текстовик и наоборот), но хочется найти более рациональный путь
Спасибо!
19 дек 09, 18:53    [8090795]     Ответить | Цитировать Сообщить модератору
 Re: x64 openrowset Microsoft.Jet.OLEDB.4.0  [new]
неDBA_
Guest
Просьба модераторам изменить название топика на
x64 openrowset Microsoft.Jet.OLEDB.4.0

Сорри, торопился
19 дек 09, 19:08    [8090828]     Ответить | Цитировать Сообщить модератору
 Re: x86 openrowset Microsoft.Jet.OLEDB.4.0  [new]
Glory
Member

Откуда:
Сообщений: 104751
Если ваша процедура MyOpenRowSetStoredProc расположена на X64 сервере, то неважно, какую разрядность имеет ваше клиентское приложение, которое запускает эту процедуру
Переносите всю логику импорта данных в SSIS
19 дек 09, 19:23    [8090863]     Ответить | Цитировать Сообщить модератору
 Re: x64 openrowset Microsoft.Jet.OLEDB.4.0  [new]
неDBA_
Guest
Glory, возможно я Вас не понял
Просто вызов MyOpenRowSetStoredProc был одним из шагов джоба на SQL2000. Этот шаг в принципе можно рассматривать, как независимый ( dbf выкладывается внешним приложением) - вызывается процедура MyOpenRowSetStoredProc , которая читает данные из dbf с использованием Openrowset через Microsoft.Jet.OLEDB.4.0 и помещает их в табличку SQL сервера.
Поэтому в качестве эксперимента на 2005 (64) я создал простой тестовый джоб с шагом - вызовом одного пакета в 32 разрядной среде (SSIS проект, скомпилированный с Run64BitRuntime = false). Пакет представляет собой Execute SQL Task с вызовом MyOpenRowSetStoredProc(читает данные из уже существующей dbf в таблицу). Ну и результат , как я описал выше, неудовлетворительный...
То есть, как я понимаю , условие
Glory
Переносите всю логику импорта данных в SSIS
выполнено - тестовый пример импорта (dbf->SQL) перенесён
Или я что то недопонимаю...
19 дек 09, 20:05    [8090979]     Ответить | Цитировать Сообщить модератору
 Re: x64 openrowset Microsoft.Jet.OLEDB.4.0  [new]
Glory
Member

Откуда:
Сообщений: 104751
неDBA_
Glory, возможно я Вас не понял
Просто вызов MyOpenRowSetStoredProc был одним из шагов джоба на SQL2000. Этот шаг в принципе можно рассматривать, как независимый.

Какой он независимый то ? Все команды, переданные серверу, выполняются на сервере
И серверу все равно, какую разрядность имеет клиентское приложение
19 дек 09, 20:33    [8091041]     Ответить | Цитировать Сообщить модератору
 Re: x64 openrowset Microsoft.Jet.OLEDB.4.0  [new]
Glory
Member

Откуда:
Сообщений: 104751
неDBA_
Glory
Переносите всю логику импорта данных в SSIS
выполнено - тестовый пример импорта (dbf->SQL) перенесён
Или я что то недопонимаю...

Да ничего вы не перенесли. Как запускали процедуру сервера, так и запускаете
19 дек 09, 20:34    [8091043]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: x86 openrowset Microsoft.Jet.OLEDB.4.0  [new]
Mikhail Eremkin
Member

Откуда: Челябинск
Сообщений: 187
Варианты запуска x32 SSIS задач на x64 сервере

http://msdn.microsoft.com/ru-ru/library/ms141766.aspx
30 май 11, 16:28    [10733224]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить