Задать вопрос
KaterSpieler
@KaterSpieler

почему выходит ошибка при работе с tablerelationmodel в QT и SQLite? (решено)

создал 2 таблицы так

Читатели:
Код SQL
CREATE TABLE readers(
    id             INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
    id_book      INTEGER,
    age          INTEGER,
    FIO          VARCHAR(10),
    FOREIGN KEY(id_book) REFERENCES books(id)
);
 

Книги:
Код SQL

CREATE TABLE books(
    id          INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
    price      INTEGER,
    COUNT     INTEGER,
    title       VARCHAR(10)
);



Потом такой код

QSqlRelationalTableModel* model = new QSqlRelationalTableModel(0); model->setTable("readers"); model->setRelation(1,QSqlRelation("books", "id_book", "title")); //ASSERT тут ассерт..... model->select(); model->setEditStrategy(QSqlTableModel::OnManualSubmit); ui->tableView->setModel(model);

и тут ошибка

Запускается D:\projects\QT\TEST_DB-build-desktop\debug\TEST_DB.exe…
ASSERT: «idx >= 0 && idx < s» in file ..\..\include/QtCore/../../../../../../ndk_buildrepos/qt-desktop/src/corelib/tools/qvarlengtharray.h, line 107
D:\projects\QT\TEST_DB-build-desktop\debug\TEST_DB.exe за

Если убираю строку с setrelation — все отлично

Все просто — названия связанных полей должны быть одинаковы
  • Вопрос задан
  • 2960 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
maquefel
@maquefel
Попробуй те вместо QSqlRelation(«books», «id_book», «title») — new QSqlRelation(«books», «id», «title»).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы