Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在移动(ios android)跨平台QT上调用sqlite数据库路径_Android_Ios_Database_Qt_Sqlite - Fatal编程技术网

在移动(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将为您提供的目录中。所有平台上的代码都相同,但位置明显不同。请看这里: