Я использую Visual C ++ для написания небольшого приложения, которое будет вызывать интерфейс SQLite C, чтобы создать базу данных и вставить в нее некоторые данные.
При отладке приложения я хочу проверить данные в базе данных.Поэтому я запускаю оболочку sqlite3 (sqlite3.exe) из командной строки, а затем использую следующую команду для открытия базы данных:
.open имя файла
После этого я хочу проверить таблицу, созданнуюмое приложение, но всегда получаю ошибку «таблица не существует».
Затем я использую «select * from sqlite_master;», но все равно возвращаю пустой результат.
Я делаю больше тестов, как показано ниже:
- Попробуйте снова открыть базу данных с параметром --readonly, как показано ниже:
.open --readonly FileName;
После открытия базы данных я пытаюсь использовать следующую команду:
select * from sqlite_master;
Затем я увижу ошибку «база данных заблокирована».Я пытаюсь найти решения в Stackoverflow, и все решения просто предлагают закрыть другое приложение, которое обращается к базе данных.Однако мне нужно лишь позволить приложению по-прежнему получать доступ к базе данных, в то время как я все еще могу просматривать (не изменять) содержимое базы данных sqlite, это возможно?
Поэтому мне просто интересно, могу ли я получить доступбазу данных sqlite, которая уже была открыта другой программой одновременно через оболочку sqlite3.exe?В настоящее время только мое приложение будет записывать в базу данных, а оболочке sqlite3 нужно только прочитать данные в базе данных.