У меня есть приложение, в котором я использую Sql Compact 3.5 с VS2008. Я запускаю несколько потоков в моем приложении, которое связывается с компактной базой данных и обращается к строке. Он выбирает и удаляет эти строки таким образом, что вы выбираете и предоставляете приложению 5 строк и удаляя эти строки из таблицы. Он отлично работает с одним потоком, но если я использую несколько потоков, то, если работает 3 или более потока, я часто получаю ошибку TimeOut !!! Я увеличил свойство Time out в строке соединения, но это не дало ожидаемого результата. Журнал ошибок выглядит следующим образом:SQL Server Compact в ожидании блокировки
SQL Server Compact, ожидающий блокировки. Время блокировки по умолчанию - 2000 мс для устройств и 5000 мс для настольных компьютеров. Тайм-аут блокировки по умолчанию можно увеличить в строке подключения, используя свойство тайм-аута блокировки ssce: default. [Идентификатор сеанса = 5, Идентификатор потока = 4204, Идентификатор процесса = 4808, Имя таблицы = XXX, Тип конфликта = блокировка x (s), Ресурс = TAB]
Запрос, который я использую для извлечения, выглядит следующим образом:
" выберите Top (5) * от TableName порядка по идентификатору; удалить из TableName, где идентификатор (выберите верхний (5) идентификатор из TableName порядка по идентификатору); "
есть ли способ, с помощью которые мы можем избежать этого исключения времени вне ???????
Вышеупомянутый запрос I un как транзакция в VS2008 с использованием SQLCECommand, а другой - с помощью SqlCEDataAdapter.
Любая идея !!!!!! Ответ