powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как монопольно подключиться к базе SQlite
18 сообщений из 18, страница 1 из 1
Как монопольно подключиться к базе SQlite
    #39716607
Dino_zavr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как монопольно подключиться к базе SQlite?
подключение - ADODB.Connection
.Mode = adModeShareExclusive - но всьо равно могут подключаться к базе другие приложения.
Просьба подсказать, как заблокировать подключение к базе если уже кто-нибудь к ней подключен?
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39716653
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Явно открой транзакцию и пока не закроешь - никто другой ничего не сможет сделать.
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39716858
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЯвно открой транзакцию и пока не закроешь - никто другой ничего не сможет сделать.```
Хуже ответа быть не может. Полный трындец!

Лучше бы узнал, чего топикстартеру таки нужно. Кстати, а зачем?
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39716892
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeDima TЯвно открой транзакцию и пока не закроешь - никто другой ничего не сможет сделать.```
Хуже ответа быть не может. Полный трындец!

Лучше бы узнал, чего топикстартеру таки нужно. Кстати, а зачем?
Ты через меня хочешь с ним общаться? Извини, не готов быть передастом, давай как-нибудь с ним напрямую общайся )))
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39716898
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, как ни странно это правильный ответ, мы тут книжку переводили 21601245 и по этой теме спорили, в SQLite транзакция блокирует всю БД, т.е. монопольный доступ.
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39716901
Dino_zavr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeЛучше бы узнал, чего топикстартеру таки нужно. Кстати, а зачем?

Ну образно говоря есть
connection.open
работа с базой, чтение\запись
connection.close
нужно что-бы между Open и Close другое приложение не могло подключиться к базе.
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39716905
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dino_zavrShSergeЛучше бы узнал, чего топикстартеру таки нужно. Кстати, а зачем?

Ну образно говоря есть
connection.open
работа с базой, чтение\запись
connection.close
нужно что-бы между Open и Close другое приложение не могло подключиться к базе.
Это называется транзакция. В начале делаешь BEGIN TRANSACTION в конце COMMIT

Для общего развития почитай книгу 21634151 там чтения на 2-3 часа.
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39716945
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

ну нет. это монопольный доступ а не транзакция.

транзакция, например, может затрагивать только нужные тебе данные [эксклюзивно].

это грубое простое объяснение
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39716999
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так и не понял что нужно топикстартеру.
ПС SQLite - не серверная база.
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39717002
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglтранзакция, например, может затрагивать только нужные тебе данные [эксклюзивно].
В SQlite нет блокировки таблиц/страниц. Тут транзакция блокирует сразу всю БД. https://www.sqlite.org/lockingv3.html

Но я немного напутал, чтобы БД сразу перешла в режим монопольного доступа надо
Код: sql
1.
BEGIN EXCLUSIVE TRANSACTION


https://www.sqlite.org/lang_transaction.html
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39717022
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если задача просто ускорить работу, пожертвовав надежностью в случае непредвиденного завершения работы, то
Код: sql
1.
2.
3.
4.
5.
6.
pragma read_uncommitted=ON;
pragma synhronous=OFF;
pragma journal_mode=OFF;
BEGIN EXCLUSIVE TRANSACTION;
...
COMMIT TRANSACTION;
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39717967
Dino_zavr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за подсказки. Буду рулить через
BEGIN EXCLUSIVE TRANSACTION;
...
COMMIT TRANSACTION;

Хотя я хотел как Aкцесе
Если базу .mdb открыть с .Mode = adModeShareExclusive то другие приложения не могут ПОДКЛЮЧИТЬЯ. connection.open - ошибка
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39719038
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С SQLite всё очень просто. Копируешь базу к себе на компьютер, делаешь, что хочешь, и публикуешь.
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39719268
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dino_zavr,

даже если использовать эксклюзивную транзакцию, то базу для чтения все равно можно будет открыть для чтения с помощью:

Код: sql
1.
sqlite3 file:database_name.db?nolock=1
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39719393
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или как вариант, после открытия шифровать, перед закрытием расшифровывать, тогда однозначно никто не откроет
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39719571
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pit_alexDino_zavr,

даже если использовать эксклюзивную транзакцию, то базу для чтения все равно можно будет открыть для чтения с помощью:

Код: sql
1.
sqlite3 file:database_name.db?nolock=1


Можно, но не нужно. Слишком опасные это грабли. Наступать на них может только тот кто прекрасно понимает как увернуться от последствий.
pit_alexили как вариант, после открытия шифровать, перед закрытием расшифровывать, тогда однозначно никто не откроет
Исходники открыты, можно просто заменить все файловые функции на свои и скомпилировать. А там внутри можно любое шифрование сделать.
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39719576
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Я всё-таки не понимаю почему нельзя скопировать файл и сделать с ним что хочешь.
...
Рейтинг: 0 / 0
Как монопольно подключиться к базе SQlite
    #39719578
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeDima T,

Я всё-таки не понимаю почему нельзя скопировать файл и сделать с ним что хочешь.
Можно, но "оригинал" не будет недоступен другим, а задача поставлена именно так чтобы другие не смогли получить доступ.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как монопольно подключиться к базе SQlite
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]