Поделиться через


Принудительная отправка данных от клиента серверу

Принудительная отправка данных от клиента серверу включает передачу изменений из базы данных Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) обратно в таблицу SQL Server. Дополнительные сведения см. в описании метода Push.

Приложение должно предварительно создать локальную таблицу SQL Server Compact 3.5 путем вызова метода Pull с установленным параметром отслеживания.

Отслеживаемые удаленным доступом к данным методы Pull и Push используют оптимистический контроль совпадений. SQL Server не оставляет запрошенные записи заблокированными. Когда приложение вызывает метод Push, изменения, внесенные в локальную базу данных SQL Server Compact 3.5, безусловно переносятся в базу данных SQL Server. Это может привести к потере изменений, внесенных другими пользователями базы данных SQL Server.

Пакетирование

Параметр RDA_BATCHOPTION указывает, должно ли программное обеспечение SQL Server Compact 3.5 пакетировать изменения, отправляемые в таблицу SQL Server. По умолчанию данный параметр имеет значение BATCHINGOFF. При этом изменения (вставки, обновления и удаления) сохраняются в таблице SQL Server как отдельные транзакции. Успех выполнения отдельных транзакций не зависит друг от друга. Значение BATCHINGON показывает, что все изменения отправляются в виде одной транзакции. В этом случае для успешного выполнения транзакции необходимо, чтобы все изменения были сохранены успешно. Если при сохранении одного из изменений возникает сбой, вся транзакция завершается неудачно и изменения в таблицу SQL Server не вносятся. Хотя значение BATCHINGON не является значением по умолчанию, в некоторых случаях использование данного параметра может стать простейшим способом создания механизма разрешения конфликтов. Дополнительные сведения см. в разделе Обнаружение конфликтов при удаленном доступе к данным и оповещение о конфликтах.

Перечислители BATCHINGON и BATCHINGOFF возвращают в таблицу ошибок все ошибки, а не только ту ошибку, которая возникла первой. Например, если задан перечислитель BATCHINGON и три из пяти изменений привели к сбоям, то не будет внесено никаких изменений, а сведения обо всех трех сбоях будут сохранены в таблице ошибок. Если задан перечислитель BATCHINGOFF, в таблице ошибок будут сохранены сведения об этих же трех сбоях, а два других изменения будут сохранены в таблице SQL Server.

Непакетированные транзакции

При выполнении непакетированных транзакций (значение BATCHINGOFF) конфликты обнаруживаются на уровне строк. Строка, вызвавшая конфликт, возвращается приложению и сохраняется в указанной таблице ошибок. Например, если приложение пытается принудительно отправить в базу данных SQL Server недействительную строку, эта строка возвращается приложению и сохраняется в таблице ошибок вместе с сообщением об ошибке, оповещающем о конфликте.

Когда вызвавшая конфликт строка возвращается в таблицу ошибок, эта строка удаляется из исходной базы данных на устройстве. Приложение должно быть разработано таким образом, чтобы пользователи могли исправить вызвавшие конфликт данные, а затем приложение могло сохранить эти данные в исходной базе данных на устройстве под управлением Windows Mobile.

Пакетные транзакции

Удаленный доступ к данным поддерживает пакетную принудительную отправку (параметр BATCHINGON). Чтобы пакетная принудительная отправка полностью выполнилась, необходимо, чтобы все строки были сохранены успешно. Если при сохранении хотя бы одной строки происходит сбой, вся транзакция принудительной отправки завершается неудачно и данные не обновляются. Строки, вызвавшие конфликт, копируются в таблицу ошибок. В отличие от непакетированной принудительной отправки, исходная база данных на устройстве под управлением Windows Mobile остается без изменений. Приложение должно быть разработано таким образом, чтобы пользователи могли исправить вызвавшие конфликт данные, а затем приложение могло сохранить эти данные в исходной базе данных на устройстве под управлением Windows Mobile. Таблица ошибок автоматически очищается перед копированием строки, вызвавшей конфликт, поэтому в таблице ошибок хранятся только сведения о конфликтах, возникших при последней операции принудительной отправки.

См. также

Другие ресурсы

Как принудительно отправить данные при помощи объекта RDA (программным путем)

Справка и поддержка

Получение помощи (SQL Server Compact 3.5 с пакетом обновления 1)