Russian Qt Forum

Qt => Базы данных => Тема начата: Николай Кузнецов от Август 03, 2011, 23:09



Название: SQLite база в качестве ресурса?
Отправлено: Николай Кузнецов от Август 03, 2011, 23:09
Можно ли ли включить в проект файл sqlite базы в качестве ресурса? У меня не получилось(

Код:
<RCC>
    <qresource prefix="/">
        <file>Data.dat</file>
    </qresource>
</RCC>

Код:
    *db = QSqlDatabase::addDatabase("QSQLITE");
    db->setDatabaseName(":/Data.dat");

Файл Data.dat лежит рядом с исходниками.
При обычном вызове: db->setDatabaseName("/Data.dat"); все пашет


Название: Re: SQLite база в качестве ресурса?
Отправлено: Пантер от Август 04, 2011, 07:21
1. Какую ошибку выдает db->open ()?
2. Ты же понимаешь, что если и можно с такой базой работать, то только ридонли?


Название: Re: SQLite база в качестве ресурса?
Отправлено: DmP от Август 04, 2011, 10:44
Можно ли ли включить в проект файл sqlite базы в качестве ресурса? У меня не получилось(
Скорее всего движок sqlite не поддерживает файловую систему Qt, для того что бы напрямую работать с ресурсами Qt надо переписать VFS sqlite.


Название: Re: SQLite база в качестве ресурса?
Отправлено: Николай Кузнецов от Август 04, 2011, 11:07
Ридонли достаточно)
Ладно пока сделал не через ресы. Хоть проблем и не убавилось(
Когда пробовал работать с MySql из Qt оказалось что нужен драйвер отдельный, перелопатил кучу топиков, накомпилил десяток dll но ничего так и не поехало. Взялся за встроенный SQLite так и тут проблем не меньше( На отладке все пашет а на релизе драйвер не может загрузить, пишет driver not loaded и соответсвенно прогу можно запустить только из среды и то под отладкой(


Название: Re: SQLite база в качестве ресурса?
Отправлено: LisandreL от Август 04, 2011, 11:19
а на релизе драйвер не может загрузить, пишет driver not loaded
В рабочий католог поместить папку sqldrivers, а в неё qsqlite4.dll


Название: Re: SQLite база в качестве ресурса?
Отправлено: Николай Кузнецов от Август 04, 2011, 11:26
а на релизе драйвер не может загрузить, пишет driver not loaded
В рабочий католог поместить папку sqldrivers, а в неё qsqlite4.dll
Спасибо большое! Просто не верится - действительно работает!