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

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

--
RemObjects AnyDAC 2.0 / 1.12
...
Рейтинг: 0 / 0
02.10.2008, 18:10
    #35573172
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite: Как узнать версию базы?
Можно только на уровне старшого номера версии. Открываешь файл базы самостоятельно и читаешь первые 16 байт. Узнаешь 3-ая база или 2-ая.
А младшие номера версий и уж тем более номера билдов на структуру файла базы не влияют.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.01.2014, 01:08
    #38518252
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite: Как узнать версию базы?
Вопрос актуален.
Прошло уже довольно много времени.
Я вот смотрю в 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
06.01.2014, 01:12
    #38518256
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite: Как узнать версию базы?
Я понял, что можно запросом
Код: sql
1.
select sqlite_version()


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

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


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

В стандартной поставке нету функции говорящей каким движком создан файл. Это вообще-то странно и непонятно, но увы.
В заголовке файла эта информация есть. Но ее надо читать внешними средствами.
http://www.sqlite.org/fileformat.html
Последнее поле в заголовке это оно.
...
Рейтинг: 0 / 0
06.01.2014, 17:46
    #38518623
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite: Как узнать версию базы?
Странно, что при создании базы нельзя указывать её версию. Или её версия будет зависеть от библиотеки доступа?
...
Рейтинг: 0 / 0
06.01.2014, 22:02
    #38518776
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite: Как узнать версию базы?
X11Странно, что при создании базы нельзя указывать её версию. Или её версия будет зависеть от библиотеки доступа?Придумай хоть одну осмысленную причину по которой было бы полезно создавать файл не той версии что версия библиотеки.
...
Рейтинг: 0 / 0
07.01.2014, 15:57
    #38519047
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite: Как узнать версию базы?
Да, я не про то. Нет таких причин. Посто хочется знать наверняка версию, вот и всё.
В коде 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
08.01.2014, 00:30
    #38519298
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite: Как узнать версию базы?
X11Да, я не про то. Нет таких причин.Вот когда придумаешь причину - тогда и придешь.
А до тех пор, все эти хотелки - бессмысленны и вредны.
...
Рейтинг: 0 / 0
08.01.2014, 03:16
    #38519348
fd00ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite: Как узнать версию базы?
White Owl, хотелка "создать базу с совместимым для другого устройства форматом" не катит?
...
Рейтинг: 0 / 0
08.01.2014, 06:48
    #38519365
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite: Как узнать версию базы?
fd00chWhite Owl, хотелка "создать базу с совместимым для другого устройства форматом" не катит?Не тот случай.

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

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

И еще раз хочу напомнить SQLite это встраиваемая база данных. Embedded design это очень серьезная штука накладывающая множество ограничений. Описанное это только одно из них.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
14.01.2016, 20:28
    #39147732
VoltDeMar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite: Как узнать версию базы?
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
15.01.2016, 15:39
    #39148318
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite: Как узнать версию базы?
База находится в файле C:\765\Cookies ? без расширения?
...
Рейтинг: 0 / 0
24.02.2016, 14:55
    #39177815
avedeo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite: Как узнать версию базы?
Что значит нельзя ...открываешь свойства файла и там все видно
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite: Как узнать версию базы? / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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