Ошибка при извлечении данных из Sybase с использованием OLE DB в SSIS - PullRequest
0 голосов
/ 05 февраля 2019

У меня проблемы с извлечением данных из Sybase с использованием поставщика OLE DB Advantage 11 в SSIS (2017).Я могу подключиться к базе данных, просмотреть список таблиц и, при выборе таблицы в качестве источника данных, я вижу столбцы.
Однако, когда я нажимаю «Просмотр» (или запускаю задачу потока данных), я получаю этоошибка:

Поставщик не может получить информацию о параметре из команды.Используйте SetParameterInfo.(Advantage OLE DB Provider)

Я не использую параметры, мой режим доступа к данным установлен на Таблицу или Просмотр (см. Скриншот)

enter image description here

В свойствах проекта для Run64bitRuntime установлено значение False.

Чего мне не хватает?Спасибо!!

Ответы [ 2 ]

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

Так что я наконец решил это, но не с OLE DB.Вместо этого я использовал Advantage .NET Data Provider Release 11.1.Затем в Visual Studio я использовал диспетчер соединений ADO.NET, где я поменял провайдера на Advantage Data Provider, и это помогло.

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

При поиске по этой проблеме я нашел старое официальное упоминание, которое связано с преимуществом ole db провайдера версии 1.0 (с 2000 года) , они отметили, что:

Заголовок:

«Поставщик не может получить информацию о параметре из команды. Использовать SetParameterInfo». Происходит при использовании клиентского курсора с OLE DB

Описание проблемы:

"Поставщик не может получить информацию о параметрахиз команды. Использовать SetParameterInfo "происходит при настройке CursorLocation для использования на стороне клиента с поставщиком OLE DB Advantage.

Решение:

Это известная проблема в выпуске 1.0 поставщика OLE DB Advantage, и ее изучает команда разработчиков и разработчиков Advantage.В версии 1.1 поставщика OLE DB Advantage эта проблема должна быть исправлена.Между тем, устанавливает CursorLocation для использования серверного курсора в качестве обхода .Серверные курсоры работают с сервером базы данных Advantage и локальным сервером Advantage.


Я искал способ установки CursorLocation на стороне сервера, возможно, вам нужно установить свойство Advantage Server Type вСтрока подключения.На самом деле я не работал с этим типом соединений, но вы можете обратиться к следующим статьям, чтобы увидеть некоторые примеры:

Также я нашел несколько официальных статей Microsoft, касающихся свойства CursorLocation, но на самом деле я не знаю, где изменить это свойство:


Обновление 1 - службы OLE DB

Попробуйте обойти с помощью OLEDB Services значения в диспетчере соединений OLEDB:

enter image description here

Также попробуйте вручную изменить значение служб OLEDB в строке подключения, ссылаясь на следующую статью:


Обновление 2 - другие поставщики

Попробуйте использовать другие поставщики для подключения к Sybase, такие как Sybase Adaptive Server Enterprise Data Provider или ODBC , существует множество ссылок, описывающих весь процесс:

...