Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Многопользовательский доступ к базе данных Microsoft SQL Server Compact 3.5 возможен в любое время, в том числе во время использования удаленного доступа к данным. Несколько пользователей могут одновременно обращаться к базе данных SQL Server Compact 3.5, даже если один из них выполняет для этой базы данных принудительную отправку или запрос данных.
Поскольку при выполнении операции запроса необходимо, чтобы указанная локальная таблица отсутствовала во время запроса (соответствующая таблица создается в процессе получения запрошенных данных с сервера), доступ к этой таблице возможен только после завершения операции запроса. Если во время принудительной отправки данных на сервер данные были изменены, эти изменения будут переданы на сервер при следующей принудительной отправке. Если после принудительной отправки данных необходимо получить данные с сервера, чтобы обновить информацию, приложение не позволит вносить дополнительные изменения в таблицу, пока операции принудительной отправки и запроса данных не будут завершены. Это гарантирует, что изменения не будут утеряны при удалении таблицы.
Поддержка нескольких подключений для доступа к базе данных SQL Server Compact 3.5 предоставляет разработчикам более простую модель для разработки. Поскольку компонент SQL Server Compact 3.5 Database Engine обрабатывает запросы нескольких приложений или несколько запросов на подключение от одного приложения, разработчикам не нужно устанавливать порядок доступа к базе данных. Если требуется несколько подключений, компонент SQL Server Compact 3.5 Database Engine блокирует данные, необходимые для конкретных операций.
Примечание
Некоторые сценарии 64-разрядных платформ не поддерживают одновременный доступ к файлу базы данных с SQL Server Compact более поздних версий. Дополнительные сведения о 64-разрядных версиях компонентов см. в разделе Управление 64-разрядными приложениями баз данных.
Изменение первичного ключа во время синхронизации
Для таблицы, отслеживаемой удаленным доступом к данным, операции удаления, вставки и обновления отслеживаются на основе значений первичного ключа. Поскольку к столбцу первичного ключа возможен многопользовательский доступ, необходимо, чтобы значения в этом столбце не изменялись во время синхронизации.
Предупреждение. Хотя изменение значений в столбце первичного ключа таблицы выполняется достаточно редко, если оно все же произойдет во время синхронизации таблицы, это может привести к ошибкам и потере данных.
Пример
В таблице A значение первичного ключа изменилось с 1 на 2. Значение 1 было сохранено в столбце отслеживания, используемом удаленным доступом к данным, поэтому во время принудительной отправки SQL Server Compact 3.5 знает, какое значение следует использовать в качестве критерия поиска при обновлении значения данных.
Приложение начинает принудительную отправку, и новое значение, равное 2, передается в базу данных SQL Server вместе со значением для поиска, равным 1. Однако, если новое значение данных будет изменено во время синхронизации, столбец отслеживания не изменит значение для поиска с 1 до 2, поскольку принудительная отправка еще не окончена. После того как принудительная отправка завершится успешно, во время последующих операций принудительной отправки для этой строки всегда будет возникать сбой. Критерий поиска, равный 1, будет недействителен, поскольку на сервере значение первичного ключа изменено с 1 на 2.
Дополнительные сведения о многопользовательском доступе см. в разделе Многопользовательский доступ. Дополнительные сведения о блокировке см. в разделе Блокировки (SQL Server Compact).