Мы не можем видеть, что вы createTable()
делаете, код, который вы никогда не вызываете db.open()
, большая часть базы данных QT и вызовы SQL возвращают bool
для успеха, и есть функция lastError()
для обоих QSqlDatabase
и QSqlQuery
звонки. Проверьте, если это уместно, то есть вызовы, то есть db.open()
и query.exec()
вернут false.
, например
bool makeDB(QString dbName) {
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("localHost");
db.setDatabaseName(dbName);
bool result = db.open();
if (result)
{
//do more processing
}
else
{
qDebug() << db.lastError().text()
}
return result;
}
Также я не думаю, что SqlLite поддерживает какой-либо тип аутентификации этот , кажется, указывает на то, что вы можете защитить свою базу данных, лицензируя расширение от создателей SqlLite.
Что касается фактического создания таблицы, то должен быть выполнен некоторый SQL, который выглядит следующим образом:
CREATE TABLE (x int, y varchar);
в зависимости от столбцов, которые вы на самом деле хотите.
Это является соответствующей документацией.