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

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

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

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

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

Затем я быстро перехожу к созданию пункта назначения ADO.NET, вводу своих учетных данных... вау, я наконец-то выбираю базу данных на своем сервере 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.

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

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

2 ответа

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

По умолчанию 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.

Другие вопросы по тегам