Мультипоточный доступ к БД?
БД: SQLite.
Язык: C#.
Мне необходимо осуществить многопоточный доступ к БД, т.е. на одну и ту же операцию, например, получения, вставки и удаления записей, может одновременно обращаться несколько потоков, как это сделать? Подскажите?
Сейчас используется типизированный датасет и все обращения к БД идут напрямую через единственный экземпляр дата адаптера.
Заранее спасибо :)
?
?
Что-то не нашел под SQLite никакой инфы.
Какие-то у вас извращенные представления об SQL. Нормальные СУБД сами управляют блокировкой, например, посредством транзакций.
Создавать еще одно подключение к базе. Хотя я, право, не знаю позволит ли SQLite этот фокус, если же нет, вам придется самостоятельно организовывать прослойку для синхронизации потоков при работе с БД. Кроме того, советую вам избавиться от датасетов - они вам только мешают.
Создавать еще одно подключение к базе. Хотя я, право, не знаю позволит ли SQLite этот фокус, если же нет, вам придется самостоятельно организовывать прослойку для синхронизации потоков при работе с БД. Кроме того, советую вам избавиться от датасетов - они вам только мешают.
А почему избавиться от датасетов?
Какие-нибудь советы по прослойке дадите? Потому как я плохо себе представляю как это организовать :-(
SQLITE_THREADSAFE=<0 or 1 or 2>
This option controls whether or not code is included in SQLite to enable it to operate safely in a multithreaded environment. The default is SQLITE_THREADSAFE=1 which is safe for use in a multithreaded environment.
и т. д.
Датасеты подразумевают "отключенный" сценарий для работы с данными. Такой сценарий не особо то и нужен в случае со встроенной СУБД.
Поищите в сети информацию о модели предметной области.
С ходу могу дать ссылку только на туториал по ASP.NET MVC: хотя в нем иллюстрируется подход с использованием LINQ2SQL/EF ОРМ-ов, по коду можно вполне оценить подход к построению приложения без датасетов.