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


Многопользовательский доступ и удаленный доступ к данным

Многопользовательский доступ к базе данных Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) может выполняться в любое время, в том числе во время использования удаленного доступа к данным. Несколько пользователей могут одновременно обращаться к базе данных SQL Server Compact Edition, даже если один из них выполняет для этой базы данных принудительную отправку или запрос данных.

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

Поддержка нескольких подключений для доступа к базе данных SQL Server Compact Edition предоставляет разработчикам более простую модель для разработки. Поскольку ядро СУБД SQL Server Compact Edition обрабатывает запросы нескольких приложений или несколько запросов на подключение от одного приложения, разработчикам не нужно устанавливать порядок доступа к базе данных. Если требуется несколько подключений, ядро СУБД SQL Server Compact Edition блокирует данные, необходимые для конкретных операций.

Изменение первичного ключа во время синхронизации

Для таблицы, отслеживаемой удаленным доступом к данным, операции удаления, вставки и обновления отслеживаются на основе значений первичного ключа. Поскольку к столбцу первичного ключа возможен многопользовательский доступ, необходимо, чтобы значения в этом столбце не изменялись во время синхронизации.

Предупреждение. Хотя изменение значений в столбце первичного ключа таблицы выполняется достаточно редко, если оно все же произойдет во время синхронизации таблицы, это может привести к ошибкам и потере данных.

Пример

В таблице A первичному ключу вместо значения 1 было присвоено значение 2. Значение 1 было сохранено в столбце отслеживания, используемом удаленным доступом к данным, поэтому во время принудительной отправки SQL Server Compact Edition знает, какое значение следует использовать в качестве критерия поиска при установке нового значения данных.

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

Дополнительные сведения о многопользовательском доступе см. в разделе Многопользовательский доступ. Дополнительные сведения о блокировке см. в разделе Блокировка (SQL Server Compact Edition).

См. также

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

Получение помощи по SQL Server Compact Edition