Назад | Перейти на главную страницу

Соединитель MySQL ADO.NET и службы интеграции MSSQL

Вот и я, день третий ... пытаюсь синхронизировать представление данных на компьютере с Windows Vista (64-разрядная версия), работающем с MSSQL 2012 и Visual Studio 2010. Рассудок ускользает, и мое внимание наполняется жаждой прогресса.

Я прошел через ад, пытаясь заставить драйверы MySQL ODBC получить работу, но безрезультатно ... все, кажется, потерялись, и все темы, которые я могу найти, являются решениями, которые не работают для меня. Проблема: SSIS не видит системный DSN.

SSIS DSN не отображается как источник данных ODBC

Я принимаю решение опробовать соединитель ADO.NET ... и, к моему удивлению, он действительно есть в списке выбора в источниках данных в SSIS. Итак, я начинаю бежать, чтобы создать задачу потока данных, создать источник ADO.NET (локальную базу данных MSSQL) ... все как обычно.

Затем я быстро перехожу к созданию ADO.NET Destination, ввожу свои учетные данные ... вау, я, наконец, выбираю базу данных на своем Linux-сервере! Рад думать, что я, наконец, нашел способ выполнить свою работу.

Затем я перехожу к сопоставлениям ... нет, что-то не так ... Я получаю сообщение об ошибке, которое режет глаза:

Компонент конвейера возвратил код ошибки HRESULT 0xC0208457 из вызова метода. Ошибка в задаче потока данных [ADO NET Destination [81]]: не удалось получить свойства внешних столбцов. Введенное вами имя таблицы может не существовать, или у вас нет разрешения SELECT для объекта таблицы, и альтернативная попытка получить свойства столбца через соединение не удалась. Подробные сообщения об ошибках: «У вас есть ошибка в синтаксисе SQL, проверьте руководство, которое соответствует вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с« database ».tablename» в строке 1.

Файлы дескрипторов на пути C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ DTS \ ProviderDescriptors \ не содержат информацию о схеме для подключения типа MySQL.Data.MySqlClient.MySqlConnection.

Таким образом, похоже, что он не может получить информацию, и поэтому я не могу правильно сопоставить таблицы.

Любые идеи по этому поводу были бы очень полезны ... заранее всем спасибо!

Хорошо, я нашел проблему ... по умолчанию MS помещает MySQL db и имя таблицы в кавычки. Я удаляю кавычки и наконец могу сопоставить таблицы. Еще одна проблема ... для другого поста.

По умолчанию MSSQL помещает имена столбцов и таблиц в кавычки, для MySQL нам нужно добавить ANSI_QUOTES к sql-mode.

Его можно установить в my.ini или my.cnf в зависимости от вашей операционной системы.

Например, для Windows server 2012 MySQL 5.6 вы можете найти его в C:\ProgramData\MySQL\MySQL Server 5.6.

В my.iniтебе нужно найти #sql-mode и обновите его, добавив в конец ANSI_QUOTES. Пример:

sql-mode = "STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ANSI_QUOTES"

Затем вам нужно перезапустить службу MySQL и перейти к панели SSIS MSSQL.