Платформа синхронизации BulkInsertCommand для таблицы в SQL Server Express - PullRequest
0 голосов
/ 14 ноября 2011

Я использую синхронизацию через WCF, мой сервер и клиент - SQL Server EXPRESS 2008, (для разработки я использовал один экземпляр sql express)

Я добавил шаблон фильтров синхронизации на сервер и создал все свои области на основе этого шаблона. Структура таблиц на стороне клиента и сервера одинакова. Когда я запускаю свое приложение, сначала все системные таблицы, SP, триггеры хорошо создаются на обеих сторонах.

Но во время синхронизации (localProvider это сервер, RemoteProvider клиент)

 SyncOrchestrator orchestrator = new SyncOrchestrator
            {
                LocalProvider = localProvider,
                RemoteProvider = remoteProvider,
                Direction = SyncDirectionOrder.Download
            };

процесс я получил следующее исключение:

{"Не удалось выполнить команду BulkInsertCommand для таблицы« MySyncTable »; транзакция откатилась. Убедитесь, что синтаксис команды правильный."}

Внутреннее исключение:

{"Не удалось выполнить преобразование при преобразовании значения nvarchar 'после синхронизации' в бит типа данных. \ R \ nДанные для табличного параметра \" @ changeTable \ "не соответствуют табличному типу параметра. \ r \ nОпределение было прекращено. "}

Что касается меня, то, похоже, у меня другая структура таблиц, я смотрю на BulkInsertCommand на стороне сервера и не нахожу ничего плохого,

Может ли это быть связано с областью применения фильтров или почему синхронизация генерирует эту ошибку?

Спасибо.

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

ранее вы предоставляли другую область для тех же наборов таблиц?

очищали ли вы сгенерированные объекты Sync Framework вручную вместо использования API депровизирования?

, если вы делали длялюбой из вышеперечисленных, скорее всего, использует устаревший UDT.

, если у вас нет других областей, определенных в базе данных, попробуйте DeprovisionStore, чтобы удалить всю базу данных и удалить все созданные объекты Sync Framwork.* если у вас есть другие области, удалите все области, связанные с таблицей проблем, с помощью DeprovisionScope.

0 голосов
/ 15 ноября 2011

Я очистил синхронизацию информации с DeprovisionStore и воссоздаю область, и теперь все работает .... спасибо.

...