Данные FreeTDS и nvarchar (max)

Я использую приложение php для управления базой данных Microsoft SQL Server. Приложение установлено в unix и использует FreeTDS. Хотя у меня нет проблем с чтением / записью данных для nvarchar (n), я не могу правильно обрабатывать данные nvarchar (max) для UTF-8.

Файл конфигурации для freetds:

    host = x
    port = 1433
    tds version = 7.0
    client charset = UTF-8

Есть ли какой-либо другой вариант для freetds для обработки корректных данных nvarchar (max)?

Спасибо!


person Dimitris    schedule 24.10.2011    source источник
comment
Какое на самом деле сообщение об ошибке? Предложите отредактировать свой вопрос, чтобы включить это. Какая версия freetds?   -  person p.campbell    schedule 24.10.2011
comment
обрабатывает ли он varchar (max)? В документации FreeTDS рассматриваются даже строки максимальной длины? он просто может этого не поддерживать.   -  person KM.    schedule 24.10.2011


Ответы (1)


Вам необходим TDS 7.2, который добавляет поддержку типов SQL Server 2005 и MAX, см. Выбор версии протокола TDS < / а>:

TDS: 7.2 Включает поддержку типов данных varchar (max), varbinary (max), xml и MARS [a].

person Remus Rusanu    schedule 24.10.2011
comment
Я безуспешно пробовал tds version = 7.2 (используя freetds версии 0.82). Другая проблема связана с ведением журнала freetds, поэтому я не могу сообщить ни о каком журнале ошибок. В любом случае, мне интересно, была ли у кого-нибудь такая же проблема. - person Dimitris; 24.10.2011
comment
Не могли бы вы подробнее рассказать, что это значит cannot handle correctly nvarchar(max) data for UTF-8? - person Remus Rusanu; 24.10.2011
comment
да. Например, при попытке добавить какой-нибудь греческий текст, например INSERT INTO TABLE_NAME VALUES (N'αβγ '), приложение сохраняет символы мусора в базе данных (aß?). - person Dimitris; 24.10.2011
comment
Задача решена. При чтении данных в моем коде была ошибка. Спасибо за ваше время! - person Dimitris; 24.10.2011