Получен запрос на изменение максимального размера поля комментария в приложении. Раньше для него было установлено значение varchar (500), поэтому после прочтения документации я решил изменить тип данных поля с varchar (500) на varchar (max ). База данных без проблем принимала изменения (с использованием Microsoft SQL Server Management Studio 2005 и Microsoft SQL Server Management Studio 2008 для управления базой данных). Затем я продолжил менять программное обеспечение. Программное обеспечение написано на Delphi с RemObjects для связи с базой данных. Поэтому я изменил TDASchema для сервера, он сопоставил мое новое поле varchar (max) как тип данных String (65536) (получил Немного беспокоил там такой явный статический размер, но я пошел дальше). Затем я получил схему DataTable для моего объекта TDAMemDataTable, который обновил все поля.
Я запустил приложение и решил посмотреть, примет ли моя база данных изменения в этом конкретном измененном поле. Я отредактировал одну из записей и нажал кнопку, чтобы синхронизировать DataSet с сервером, и получил такое сообщение об ошибке:
Типы данных varchar (max) и текст несовместимы в операторе равенства
Я интерпретирую это как то, что мой объект сервера (тот, который сопоставляет поля базы данных с объектами RemObjects) сопоставил типы данных полей с неправильными типами данных в RemObjects.
Как это можно решить? Какие есть альтернативы?
P.S. В журналах этого выпуска Build .1267 от RemObjects четко указано, что:
исправлено: DataSnap: не удается опубликовать обновления для MSSQL 2005 VARCHAR (MAX)
Я использую версию сборки .1067. Интересно, поможет ли обновление решить проблему
P.P.S. После обновления RemObjects до последней версии проблема сохраняется.