检查表是否存在

Gan*_*alf 5 sqlite qt

我正在使用它SELECT name FROM sqlite_master WHERE type = "table" AND name = 'create_organization';来检查名为create_organization的表是否存在并且它是否有效.但是我想使用qt来找出它.我正在尝试

 QSqlQuery query;
    QString tableName = "employee_datastores";
    QString sqlQuery = QString("SELECT name FROM sqlite_master WHERE type =:table AND name = %1 ").arg(tableName);
    query.prepare(sqlQuery);
    query.bindValue(":table", "table");
    query.exec();
    int fieldNo = query.record().indexOf("employee_datastore_name");
    while (query.next()) {
        QString employee_ds_name = query.value(fieldNo).toString();
        qDebug() << "Table Name" << employee_ds_name ;
    }
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

小智 9

QSqlDatabase :: tables()能为您提供所需内容吗?例如,您可以尝试:

if ( database.tables().contains( QLatin1String("employee_datastores") ) {
    ...
}
Run Code Online (Sandbox Code Playgroud)