当我执行此操作时:
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();
}