Когда я добавляю
client charset = UTF-8
в мой файл freetds.conf моя программа DBD :: Sybase отправляет:
Out of memory!
и завершается. Это происходит, когда я вызываю execute () для оператора запроса SQL, который возвращает любые поля ntext. Я могу нормально возвращать числовые данные, datetime и nvarchars, но всякий раз, когда одним из полей вывода является ntext, я получаю эту ошибку.
Все эти запросы прекрасно работают без настройки UTF-8, но мне нужно обрабатывать некоторые символы, которые выдают предупреждения в наборе символов по умолчанию. (См. связанный вопрос .)
Сообщение об ошибке отформатировано не так, как другие сообщения об ошибках DBD :: Sybase, похоже, отформатированы. Я получаю сообщение о том, что откат (), однако. (Мой ложный флаг AutoCommit соблюдается.) Мне кажется, я где-то читал, что FreeTDS использует программу iconv для преобразования между наборами символов; Возможно ли, что это сообщение отправляется от iconv?
Если я выполняю тот же запрос с теми же настройками freetds.conf в tsql (оболочка SQL командной строки FreeTDS), я не получаю сообщение об ошибке.
Я подключаюсь к SQL Server.
Что мне нужно сделать, чтобы эти запросы успешно возвращались?