Check if a table exists Check if a table exists sqlite sqlite

Check if a table exists


Does QSqlDatabase::tables() give you what you want? For example you could try:

if ( database.tables().contains( QLatin1String("employee_datastores") ) {    ...}


You could fix it like this:

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();

But why mix bind values and "dumb" string replacement?

QString sqlQuery = QString("SELECT name FROM sqlite_master WHERE type =:table AND name = :tablename ");query.prepare(sqlQuery);query.bindValue(":table", "table");query.bindValue(":tablename", tableName);query.exec();


This solved it.Thanks Mat.

QSqlQuery query;    QString tableName = "structure";    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("name");    while (query.next()) {        QString _name = query.value(fieldNo).toString();        qDebug() << "Table Name" << _name ;    }