sqliteデータベースに接続してAndroidアプリを作成したいと思います。
しかし、私はアプリを実行するときに私は言ったエラーを与える:データベースが開いていない。qtでsqliteに接続してandroidで実行する方法
#include "csqlconnect.h"
#include <QFile>
#include <QSqlQuery>
#include <QMessageBox>
#include <QDebug>
#include <QSql>
#include <QSqlError>
#include <QSqlTableModel>
#include <QSqlRecord>
CSqlConnect::CSqlConnect()
{
db = QSqlDatabase::addDatabase("QSQLITE","MyConnection");
QFile dfile("./myfile.sqlite");
bool dbf=dfile.exists();
if (!dbf)
{
QFile::copy("assets:/myfile.sqlite", "./myfile.sqlite");
QFile::setPermissions("./myfile.sqlite",QFile::WriteOwner | QFile::ReadOwner);
}
db.setDatabaseName("myfile.sqlite");
bool open=db.open();
if(!open)
{
QMessageBox::warning(0, "Failed to connect!", "Error connecting to database: "+db.lastError().driverText());
// qDebug()<<"Failed!!!!";
}
if(open)
{
QSqlQuery query;
query.exec("create table person "
"(id integer primary key, "
"firstname varchar(20), "
"lastname varchar(30), "
"age integer)");
}
QSqlQuery query2;
query2.prepare( "人物。INSERT INTO(ID、FIRSTNAME、LASTNAME、年齢)VALUES(:ID:FIRSTNAME:LASTNAME、:AGE)")。 query2.bindValue( ":ID"、1); query2.bindValue( ":FIRSTNAME"、 "ali"); query2.bindValue( ":LASTNAME"、 "alavi"); query2.bindValue( ":AGE"、24); query2.exec(); QSqlTableModelモデル。 model.setTable( "person"); model.select(); QSqlRecordレコード= model.record(0);結果= record.value( "firstname")。toString(); }
QString CSqlConnect::getValue()
{
return result;
}
CSqlConnect::~CSqlConnect()
{
db.close();
}
それは、この答えはグーグルで見つけることがいかに難しい驚きです。ここに来る2時間前に無駄になった。ここに来る怒りと欲求不満の人たちに:#ifdef Q_OS_ANDROID'を使ってください。あなたはそこにいます。 –