在移动(ios android)跨平台QT上调用sqlite数据库路径
我正在制作一个应用程序到在移动(ios android)跨平台QT上调用sqlite数据库路径,android,ios,database,qt,sqlite,Android,Ios,Database,Qt,Sqlite,我正在制作一个应用程序到ios和android。 我需要获取自定义数据库,我使用数据库浏览器为sqlite客户端创建了一个sqlite数据库。 我调用了db.sqlite并将它们(数据库文件夹)放入我的qt创建者的解决方案中: 因此,我创建了一个db管理器类,您可以在functions文件夹中看到。 但是我不知道如何调用数据库路径。 这是我的dbmanager类代码: DbManager::DbManager(QObject *parent) : QObject(parent) { m
ios
和android
。
我需要获取自定义数据库,我使用数据库浏览器为sqlite
客户端创建了一个sqlite
数据库。
我调用了db.sqlite
并将它们(数据库文件夹)放入我的qt
创建者的解决方案中:
因此,我创建了一个db管理器类,您可以在functions文件夹中看到。
但是我不知道如何调用数据库路径。
这是我的dbmanager类代码:
DbManager::DbManager(QObject *parent) : QObject(parent)
{
m_db = QSqlDatabase::addDatabase("QSQLITE");
m_db.setDatabaseName(QCoreApplication::applicationDirPath().append("/database/db.sqlite"));
bool connected = m_db.open();
if (!connected) {
qDebug() << "Error: connection with database failed";
} else {
qDebug() << "Database: connection success";
QSqlQuery q(m_db);
q.prepare("SELECT * FROM oven");
if (q.exec()) {
qDebug() << "Yay!";
} else {
qDebug() << "Bad exec: " << q.lastError();
qDebug() << q.executedQuery();
}
}
}
DbManager::DbManager(QObject*parent):QObject(parent)
{
m_db=QSqlDatabase::addDatabase(“QSQLITE”);
m_db.setDatabaseName(QCoreApplication::applicationDirPath().append(“/database/db.sqlite”);
bool connected=m_db.open();
如果(!已连接){
qDebug()您不能在手机上使用随机路径。请尝试以下操作:
m_db=QSqlDatabase::addDatabase(“QSQLITE”);
QString dbLocation=QStandardPath::writableLocation(QStandardPath::GenericDataLocation);
m_db.setDatabaseName(dbLocation+“/”+m_dbname);
其中m_dbname是您数据库的名称。如果您不介意的话,您可以使用realmdb。我把数据库文件放在哪里?您的解决方案返回给我两个不同的路径,ios和android返回路径它不是相等的路径…那么我把数据库文件放在哪里?wich文件夹?当然它会显示两个不同的路径。这就是重点!每个平台rm有自己的标准位置,但每个平台上的位置都不同。使用上面的将为您提供特定于平台的路径。换句话说,将其放入QStandardPath将为您提供的目录中。所有平台上的代码都相同,但位置明显不同。请看这里: