Russian Qt Forum

Qt => Базы данных => Тема начата: RustAlex от Сентябрь 13, 2016, 11:53



Название: Создание SQLite базы в iOS
Отправлено: RustAlex от Сентябрь 13, 2016, 11:53
Разработано и успешно работает приложение для Android с использованием SQLite. Оно же успешно запускается при перекомпиляции под MAC OS X или Windows. Но попытка запустить его на iOS приводит к возникновению проблем при первоначальном создании базы.
База содается с использованием следующего кода:
Код
C++ (Qt)
   QString fileName(baseFileName);
   QString path(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation));
   DB = QSqlDatabase::addDatabase("QSQLITE");
 
   DB.setDatabaseName(path + fileName);

Путь вроде корректно задается... Или все таки для iOS какие-то особенности есть?


Название: Re: Создание SQLite базы в iOS
Отправлено: kambala от Сентябрь 13, 2016, 14:31
куда указывает сформированный путь? в Documents приложения?


Название: Re: Создание SQLite базы в iOS
Отправлено: RustAlex от Сентябрь 13, 2016, 16:18
СУБД: Путь к базе данных:  "/var/mobile/Containers/Data/Application/15007D72-0222-4D4A-9A06-54C87BDCDFCE/Library/Application Support/eorAndroid/BaseData.sqlite"

У меня подозрения что надо в xCode какие-то разрешения включить.

Потому что переменная AppDataLocation актуальна для iOS: "<APPROOT>/Library/Application Support"


Название: Re: Создание SQLite базы в iOS
Отправлено: kambala от Сентябрь 14, 2016, 01:00
разрешения никакие не нужны.
"<APPROOT>/Library/Application Support"
Код
C++ (Qt)
DB.setDatabaseName(path + fileName);
...Library/Application Support/eorAndroid/BaseData.sqlite
а откуда берется eorAndroid? это часть имени файла?

может еще стоит это учесть:
Цитировать
All content in this directory should be placed in a custom subdirectory whose name is that of your app’s bundle identifier or your company.

а проблемы-то какие возникают? просто файл БД не создается?


Название: Re: Создание SQLite базы в iOS
Отправлено: RustAlex от Сентябрь 14, 2016, 10:37
eorAndroid  - имя приложения

Да - проблема именно в том что файл не создается:
QSqlError("-1", "Error opening database", "out of memory")


Название: Re: Создание SQLite базы в iOS
Отправлено: RustAlex от Сентябрь 14, 2016, 11:10
Следом идет еще какой-то подозрительный assert:

ASSERT: "m_qioswindow->geometry().size() == bounds" in file quiview.mm, line 189

Но с созданием базы это не связано.