LINUX.ORG.RU

Qt SQLite не видит созданную таблицу.

 , ,


1

1

Всем доброго времени суток. Только начал работать с SQLite в QT и не могу разобраться: 1. Создается БД 2. В БД записывается таблица. Дебаг выдает, что таблица не создана, но если открывать БД сторонней программой, то видна таблица и поля. 3. При попытке вывести таблицу на форму, ничего не отображается. И тут вопрос - либо я что-то не так делаю при создании таблицы, либо неправильно вывожу ее на форму

 QSqlDatabase dbase = QSqlDatabase::addDatabase("QSQLITE");
        dbase.setDatabaseName("/home/eugenes/db.sqlite");
        if (!dbase.open()) {
            qDebug() << "Что-то не так с соединением!";

        }
        else
        {
             qDebug() << "Все отлично!";
        }

        QSqlQuery a_query;

            QString str = "CREATE TABLE my_table ("
                    "number integer PRIMARY KEY NOT NULL, "
                    "address VARCHAR(255), "
                    "age integer"
                    ");";
          bool b = a_query.exec(str);
          if (!b) {
              qDebug() << "Вроде не удается создать таблицу!";
           }


          model.setTable("my_table");
          model.setEditStrategy(QSqlTableModel::OnFieldChange);
          model.select();

          ui->tableView->setModel(&model);
          ui->tableView->show();

Буду очень признателен за помощь

ЕМНИП там есть функция (в sqlite) что-то вроде getlasterror или как-то так.

При попытке вывести таблицу на форму, ничего не отображается.

Попробуй сторонними средствами создать базу и вывести. Может разные версии баз/библиотек используются?

ziemin ★★ ()
--  QSqlQuery a_query;
++  QSqlQuery a_query( dbase);

И вывод ошибок сделай из a_query.lastError().text();

trex6 ★★★★★ ()
Последнее исправление: trex6 (всего исправлений: 1)
Ответ на: комментарий от trex6

Спасибо огромное за ответ! Вот что выдает:

Вроде не удается создать таблицу! «table my_table already exists Unable to execute statement»

Однако, даже если я изменю имя БД(т.е. чистая БД без таблиц), выдает:

Вроде не удается создать таблицу! " "

Хотя функция не возвращает никаких ошибок...

QSqlQuery a_query( dbase) - исправил

gwyllum ()
Ответ на: комментарий от gwyllum

lastError - полностью в qDebug() запихай и посмотри на него.

trex6 ★★★★★ ()

Где находится этот кусок кода? Что такое model? Где и как объявлен model?

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.