@mgkirs

Как положить базу данных вместе с приложением?

if(QFile::exists(":db/db.sl3")){
    QSqlDatabase b = QSqlDatabase::addDatabase("QSQLITE");
    b.setDatabaseName(":db/db.sl3");
    qDebug()<<"Database: ";
    if(!b.open()){
    qDebug()<<b.lastError().text();
    }else{
    qDebug()<<"All ok select sqlite_version() AS sqlite_version";
    }
}else{
    qDebug()<<"File not found";
}

qrc вариант не подходит, для работы SQLite требуется полный путь к базе данных или выведет ошибку уровня драйвера базы данных.

Как вообще в месте с приложениями компонуются xml файлы, базы дынных. И как можно получить их путь.
Насколько я понял это называется: "установочная база"

PS сейчас пытаюсь найти решение для iphone
  • Вопрос задан
  • 504 просмотра
Решения вопроса 1
@mgkirs Автор вопроса
Просто скопировал из qrc в AppDataLocation
QStandardPaths::standardLocations(QStandardPaths::AppDataLocation);
if(!QFile::exists("db.sl3")){
    QFile::copy(":db/db.sl3","db.sl3");
}else{
    qDebug()<<"File found"; }
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
nwtb.setDatabaseName("JWS.sl3");
if(!db.open()){
qDebug()<<nwtb.lastError().text();
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы