Я использую QSqlDatabase для создания базы данных и таблиц, но недавно у меня возникла проблема.
Я создал базу данных, которая была открыта отлично (когда я создал базу данных, я открыл ее, чтобы проверить, все ли в порядке, но позже я удалил открытие из своего кода) и никаких проблем не возникло. Затем я попытался создать таблицу другим методом, но не могу открыть свою базу данных для ее создания. В консоли ошибок нет.
Вот мой код
void DbManager::createDb(QString name)
{
if (!QFile::exists(name))
{
QSqlDatabase db;
db = QSqlDatabase::addDatabase("QSQLITE", name);
db.close();
}
}
void DbManager::createTable(QString dbName, QString tableName)
{
if(QFile::exists(dbName))
{
qDebug() << "database exists";
QSqlDatabase db = QSqlDatabase::database(dbName);
if(db.open())
{
qDebug() << "no way: Database is opened!";
QString about = "CREATE TABLE " + tableName +
"Id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL " +
"pictureSource VARCHAR(50)" +
"projectName VARCHAR(50)" +
"projectDescription VARCHAR(50)";
QSqlQuery qry;
if(!qry.exec(about))
{
qDebug() << "error: cannot create table";
}
}
else {
qDebug() << "error: cannot open database";
}
}
else {
qDebug() << "database doesn't exists";
}
}