powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite: Как узнать версию базы?
16 сообщений из 16, страница 1 из 1
SQLite: Как узнать версию базы?
    #35562434
jBee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется база данных (файл) sqlite. Как узнать версию движка sqlite в котором эта база была создана?
...
Рейтинг: 0 / 0
SQLite: Как узнать версию базы?
    #35570718
Фотография BION
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jBeeИмеется база данных (файл) sqlite. Как узнать версию движка sqlite в котором эта база была создана?

http://www.sqlite.org/c3ref/libversion.html
...
Рейтинг: 0 / 0
SQLite: Как узнать версию базы?
    #35572493
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Официально - никак.

--
RemObjects AnyDAC 2.0 / 1.12
...
Рейтинг: 0 / 0
SQLite: Как узнать версию базы?
    #35573172
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно только на уровне старшого номера версии. Открываешь файл базы самостоятельно и читаешь первые 16 байт. Узнаешь 3-ая база или 2-ая.
А младшие номера версий и уж тем более номера билдов на структуру файла базы не влияют.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
SQLite: Как узнать версию базы?
    #38518252
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос актуален.
Прошло уже довольно много времени.
Я вот смотрю в SQLite Expert`е страницу "Properties for databse" и там нет информации про версию.

Но когда создаёшь приложение для андроида, то там нужно указывать версию:
Код: java
1.
2.
3.
4.
5.
6.
public class DatabaseHandler extends SQLiteOpenHelper {
 
    // All Static variables
    // Database Version
    private static final int DATABASE_VERSION = 1;
 
...
Рейтинг: 0 / 0
SQLite: Как узнать версию базы?
    #38518256
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял, что можно запросом
Код: sql
1.
select sqlite_version()


но это будет версия клиентской библиотеки или непосредственно базы?

...
Рейтинг: 0 / 0
SQLite: Как узнать версию базы?
    #38518292
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Я понял, что можно запросом
Код: sql
1.
select sqlite_version()


но это будет версия клиентской библиотеки или непосредственно базы?Библиотеки.

В стандартной поставке нету функции говорящей каким движком создан файл. Это вообще-то странно и непонятно, но увы.
В заголовке файла эта информация есть. Но ее надо читать внешними средствами.
http://www.sqlite.org/fileformat.html
Последнее поле в заголовке это оно.
...
Рейтинг: 0 / 0
SQLite: Как узнать версию базы?
    #38518623
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно, что при создании базы нельзя указывать её версию. Или её версия будет зависеть от библиотеки доступа?
...
Рейтинг: 0 / 0
SQLite: Как узнать версию базы?
    #38518776
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Странно, что при создании базы нельзя указывать её версию. Или её версия будет зависеть от библиотеки доступа?Придумай хоть одну осмысленную причину по которой было бы полезно создавать файл не той версии что версия библиотеки.
...
Рейтинг: 0 / 0
SQLite: Как узнать версию базы?
    #38519047
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, я не про то. Нет таких причин. Посто хочется знать наверняка версию, вот и всё.
В коде java (android)
Код: java
1.
DB_VERSION = 1;


и попытался подключиться к базе, получил ошибку

LogCatjava.lang.RuntimeException: Unable to start activity ComponentInfo{com.mkt.app/com.mkt.app.MainActivity}: android.database.sqlite.SQLiteException: Can't downgrade database from version 3 to 1

Т.е. где-то как-то определяется версия.
...
Рейтинг: 0 / 0
SQLite: Как узнать версию базы?
    #38519298
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Да, я не про то. Нет таких причин.Вот когда придумаешь причину - тогда и придешь.
А до тех пор, все эти хотелки - бессмысленны и вредны.
...
Рейтинг: 0 / 0
SQLite: Как узнать версию базы?
    #38519348
fd00ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl, хотелка "создать базу с совместимым для другого устройства форматом" не катит?
...
Рейтинг: 0 / 0
SQLite: Как узнать версию базы?
    #38519365
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fd00chWhite Owl, хотелка "создать базу с совместимым для другого устройства форматом" не катит?Не тот случай.

Кросс-разработка имеет смысл только в случае если целевое устройство в принципе не способно (или просто очень сложно) создавать файлы в нужном формате.
Вот кросс-компиляция (для того-же Андроида) например - смысл имеет. Потому что запихнуть среду разработки в таблетку или телефон хоть и можно, но сложно. Подготавливать apk на PC намного проще и удобнее. А если пишешь для какого-нибудь микро-контроллера в который вообще компилятор не вставишь - то кросс-компиляция становится единственным возможным вариантом.

А вот с SQLite внутри Андроида картина совершенно другая. Каждая версия Андроида произведенная для конкретного планшета и/или телефона будет иметь свою версию SQLite. В этих условиях кросс-сборка файла базы превращается во первых в кошмар: тебе придется собирать базу для всех версий движка чтобы предугадать возможность использования на всех возможных моделях телефонов и планшетов. А если еще вспомнить что некоторые смартфоны живут достаточно долго чтобы пережить апгрейды ОС, то веселье с версией удваивается на каждый апгрейд.
А во вторых, тебе придется сначала убедиться что та версия движка которая воткнута в телефон ЯЧСМИ от производителя ЙЦУКЕН основанный на Андроиде номер А.Б.Ц является той самой версией которую когда-то Хипп опубликовал, а не является модификацией от ЙЦУКЕН... Public Domain это вам не шутки.

И еще раз хочу напомнить SQLite это встраиваемая база данных. Embedded design это очень серьезная штука накладывающая множество ограничений. Описанное это только одно из них.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
SQLite: Как узнать версию базы?
    #39147732
VoltDeMar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlМожно только на уровне старшого номера версии. Открываешь файл базы самостоятельно и читаешь первые 16 байт. Узнаешь 3-ая база или 2-ая.
А младшие номера версий и уж тем более номера билдов на структуру файла базы не влияют.

У меня сейчас такая же задача, допустим я открываю файл и получаю первые его 16 байт, как их интерпретировать?
У меня установлен обозреватель для SQLite, который открывает эту базу, но открыть её программно не удаеться (я лишь предполагаю что дело в версии базы данных).Использую такой код в C#:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
using (SQLiteConnection db = new SQLiteConnection(@"C:\765\Cookies", true))
                {
                    db.Open();
                    SQLiteCommand command = new SQLiteCommand("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;", db);
                    SQLiteDataReader reader = command.ExecuteReader();
                    foreach (DbDataRecord record in reader)
                        Debug.WriteLine("Таблица: " + record["name"]);
                    db.Close();
                }



Выдает такую ошибку: System.ArgumentException: Формат строки инициализации не соответствует спецификации, начиная с индекса 0 (Может есть другие идеи как пофиксить? )
Можно ли увидеть в обозревателе версию движка который создал базу?
...
Рейтинг: 0 / 0
SQLite: Как узнать версию базы?
    #39148318
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
База находится в файле C:\765\Cookies ? без расширения?
...
Рейтинг: 0 / 0
SQLite: Как узнать версию базы?
    #39177815
Фотография avedeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит нельзя ...открываешь свойства файла и там все видно
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite: Как узнать версию базы?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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