ですので、私はQTを使ってsqliteデータベースを作成しようとしています。 だから...私はこのコードを使用します。QSqlDatabase sqliteデータベースはiOS上で動作しません - QT 5.9クロスプラットフォーム
QString dbName = "apo.sqlite";
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(dbName);
if(QFile::exists(dbName))
{
db.setDatabaseName(dbName);
db.database(dbName,true);
qDebug()<<"DATABASE EXIST";
if(db.open())
{
QSqlQuery query(db);
query.prepare("INSERT INTO settings (username, password, remember_login) VALUES ('aaa', 'bbb', '1')");
query.exec();
qDebug() << "DATABASE OPEN";
query.prepare("SELECT * FROM `settings`");
query.exec();
while (query.next())
{
qDebug() << "USERNAME" << query.value("username").toString();
}
}
else
{
qDebug() << "DATABASE CLOSED";
}
}
else {
qDebug() << "DATABASE NOT EXIST, I CREATE ONE";
if(!db.isOpen()) {
qDebug() << "ERROR I CAN'T OPEN DATABASE";
}
else
{
QSqlQuery q;
q.prepare("CREATE TABLE `settings` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `username` TEXT, `password` TEXT, `remember_login` TEXT);");
q.exec();
qDebug() << "DB opened";
QSqlQuery query(db);
query.prepare("INSERT INTO settings (username, password, remember_login) VALUES ('aaa', 'bbb', '1')");
query.exec();
query.prepare("SELECT * FROM settings");
query.exec();
while (query.next())
{
qDebug() << "USERNAME" << query.value("username").toString();
}
}
}
さて、あなたは私がDBを作成する最初のオープンで、アプリ上で最初のオープンチェックするために私のコードを設定していることがわかります。 2回目以降は、データベースを読んでいます。 このコードはAndroid搭載端末では動作しますが、iOS端末ではこのコードは動作しません。なぜですか? 多分、クロスプラットフォームはこのコードをサポートしていませんか?
私はqtを使用します。5.9 どこが間違っているのか分かりません。 助けてくれてありがとう。