使用SQL脚本在SQLite数据库中创建表

时间:2020-07-06 17:36:47

标签: sqlite qt

当我执行此操作时:

void MainVM::createDatabase()
{
    QFile file(":/init.sql");
    file.open(QIODevice::ReadOnly | QIODevice::Text);
    db.open();
    QSqlQuery query(db);
    //db.transaction();
    query.exec(file.readAll());
    //db.commit();
    qDebug() << query.lastError();
    db.close();
    file.close();
}

我明白了:

QSqlError(“ 21”,“一次无法执行多个语句”,“不是错误”)

init.sql有9个table定义和一些表中的一些insert语句。

编辑

好像不支持执行多条语句!这有效:

void MainVM::createDatabase()
{
    QFile file(":/init.sql");
    file.open(QIODevice::ReadOnly | QIODevice::Text);
    auto script = file.readAll();
    file.close();

    auto statements = script.split(';');
    QSqlQuery query(db);
    db.open();
    foreach(auto statement, statements) query.exec(statement);
    db.close();
}

0 个答案:

没有答案