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

Передача BLOBS на MSSQL -> MySQL Linked Server

Работаю над настройкой новой базы данных MySQL для веб-сайта, и я пытаюсь понять, как передавать длинные строки.
У меня довольно много таблиц MSSQL с Varchars от 500 до 2000.
Очевидно, что в MySQL они должны храниться в текстовом поле, которое является BLOB.
Если я запрашиваю таблицу в MySQL с текстовым полем, кажется, что данные возвращаются нормально. Но если я попытаюсь выполнить вставку в таблицу с помощью текстового поля, он вернет ошибку, говорящую [OLE/DB provider returned message: Query-based insertion or updating of BLOB values is not supported.]

Есть ли способ выполнить эту работу, или мне придется делать это путем передачи плоских файлов?

Эта проблема возникла несколько дней назад на моем сервере, связанном с MySQL. Драйвер ODBC версии 5.1.

Соединение MySQL выполняется с использованием системного DSN, а не строки подключения в свойствах связанного сервера. Решение: в параметрах подключения DSN перейдите на вкладку «Курсоры / Результаты» и снимите флажок «принудительное использование курсоров только вперед».

Решение, основанное на этом: http://support.microsoft.com/default.aspx?scid=kb;en-us;175245

Итак, после долгого осмотра я заметил, что существует две версии коннектора ODBC: 3.51.28 и 5.1.8 ( http://dev.mysql.com/downloads/connector/odbc/ ).

Не уверен, почему они поддерживают две версии, но неважно. Установил его, сбросил в DNS и смог вставить строку из 1000+ символов.

Надеюсь, в этом новом баге больше нет.

Кстати, для будущих поколений, когда я настраивал его в DNS, я не ставил ни одного флажка в параметрах Details. Я не знаю, нужно ли что-то проверять, но я думаю, что выясню это, когда что-то не сработает.