Работаю над настройкой новой базы данных 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. Я не знаю, нужно ли что-то проверять, но я думаю, что выясню это, когда что-то не сработает.