SQL CE через сетевой ресурс - PullRequest
1 голос
/ 15 марта 2011

Я видел этот вопрос, который задавался ранее, но не могу найти четкого объяснения того, что / не возможно и какие обходные пути доступны.

У меня есть приложение на C #, которое использует SQL CE для хранения локальной информации. Эта база данных доступна только одному приложению и хранится в папке appdata пользователя.

В некоторых средах папка appdata перенаправлена ​​на общую сетевую папку, в результате чего SQL CE выдает исключение: «Внутренняя ошибка: невозможно открыть область общей памяти.»

Я прочитал, что SQL CE 3.5 SP2 должен снова разрешать подключения к сетевым ресурсам, а SP1 - нет, однако я не смог заставить его работать. У кого-нибудь был какой-либо успех, заставляющий любую версию SQL CE работать через сетевой ресурс? И если да, то какую версию / код вы использовали, чтобы заставить его работать?

Я попытался использовать mode = Exclusive в строке подключения, но безуспешно.

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

Ответы [ 4 ]

2 голосов
/ 16 мая 2011

Я обновил приложение, чтобы использовать SQL Express с экземплярами локальных пользователей, которые работали, но это создало слишком много проблем развертывания для наших клиентов.В итоге мне пришлось написать слой для использования Access MDB, в то время как мы смотрим на различные варианты базы данных.

Мое предложение для написания настольных приложений: НЕ использовать SQL Express или SQL CE для локального хранения.

1 голос
/ 13 сентября 2013

Я успешно использовал SQL CE 3.5 на сетевом диске с экземплярами приложения, работающего одновременно на двух сетевых компьютерах.Мне удалось обновить записи в базе данных из обоих мест.

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

0 голосов
/ 15 марта 2011

SQL Compact - это однопользовательский обработчик базы данных в процессе работы.

Вы пытались поместить базу данных sqlce в общую папку и указать источник данных, где она находится?

Что-токак:

"Data Source=\\MySharedfolder\\DB.sdf;Persist Security Info=False;"
0 голосов
/ 15 марта 2011

Хранить данные в папке, которая не перенаправляется.

...