nagpalma
6th July 2007, 11:47
Hello,
I'm using QSqlRelationalTableModel and QTableView to access a sqlite database :
..... sentenceModel = new QSqlRelationalTableModel(this);
sentenceModel->setTable("sentence");
sentenceModel->setRelation(Sentence_ActionId,
QSqlRelation("action", "id", "text"));
sentenceModel->setRelation(Sentence_CharacterId,
QSqlRelation("character", "id", "text"));
sentenceModel->setSort(Sentence_Text, Qt::AscendingOrder);
sentenceModel->setHeaderData(Sentence_Text, Qt::Horizontal, tr("Text"));
sentenceModel->setHeaderData(Sentence_Sound, Qt::Horizontal, tr("Sound"));
sentenceModel->setHeaderData(Sentence_Language, Qt::Horizontal, tr("Language"));
sentenceModel->setHeaderData(Sentence_ActionId, Qt::Horizontal, tr("Action"));
sentenceModel->setHeaderData(Sentence_CharacterId, Qt::Horizontal, tr("Character"));
sentenceModel->select();
sentenceTableView = new QTableView;
sentenceTableView->setModel(sentenceModel);
sentenceTableView->setItemDelegate(new QSqlRelationalDelegate(this));
sentenceTableView->setSelectionMode(QAbstractItemView::SingleSelectio n);
sentenceTableView->setSelectionBehavior(QAbstractItemView::SelectRows );
sentenceTableView->setColumnHidden(Sentence_Id, true);
sentenceTableView->resizeColumnsToContents(); .....
and when i try to add a new record :
void MainWidget::addSentence()
{
int row = 0;
if (sentenceTableView->currentIndex().isValid())
row = sentenceTableView->currentIndex().row();
sentenceModel->insertRow(row);
QModelIndex index = sentenceModel->index(row, Sentence_Text);
sentenceTableView->setCurrentIndex(index);
sentenceTableView->edit(index);
}
i receive the error:
ASSERT: "idx >= 0 && idx < s" in file c:\iwmake\build_vs2005_commercial_________________ padding_________________\include\qtcore\../../src/corelib/tools/qvarlengtharray.h, line 78
Any help would be appreciated.
Thanks,
Palma
I'm using QSqlRelationalTableModel and QTableView to access a sqlite database :
..... sentenceModel = new QSqlRelationalTableModel(this);
sentenceModel->setTable("sentence");
sentenceModel->setRelation(Sentence_ActionId,
QSqlRelation("action", "id", "text"));
sentenceModel->setRelation(Sentence_CharacterId,
QSqlRelation("character", "id", "text"));
sentenceModel->setSort(Sentence_Text, Qt::AscendingOrder);
sentenceModel->setHeaderData(Sentence_Text, Qt::Horizontal, tr("Text"));
sentenceModel->setHeaderData(Sentence_Sound, Qt::Horizontal, tr("Sound"));
sentenceModel->setHeaderData(Sentence_Language, Qt::Horizontal, tr("Language"));
sentenceModel->setHeaderData(Sentence_ActionId, Qt::Horizontal, tr("Action"));
sentenceModel->setHeaderData(Sentence_CharacterId, Qt::Horizontal, tr("Character"));
sentenceModel->select();
sentenceTableView = new QTableView;
sentenceTableView->setModel(sentenceModel);
sentenceTableView->setItemDelegate(new QSqlRelationalDelegate(this));
sentenceTableView->setSelectionMode(QAbstractItemView::SingleSelectio n);
sentenceTableView->setSelectionBehavior(QAbstractItemView::SelectRows );
sentenceTableView->setColumnHidden(Sentence_Id, true);
sentenceTableView->resizeColumnsToContents(); .....
and when i try to add a new record :
void MainWidget::addSentence()
{
int row = 0;
if (sentenceTableView->currentIndex().isValid())
row = sentenceTableView->currentIndex().row();
sentenceModel->insertRow(row);
QModelIndex index = sentenceModel->index(row, Sentence_Text);
sentenceTableView->setCurrentIndex(index);
sentenceTableView->edit(index);
}
i receive the error:
ASSERT: "idx >= 0 && idx < s" in file c:\iwmake\build_vs2005_commercial_________________ padding_________________\include\qtcore\../../src/corelib/tools/qvarlengtharray.h, line 78
Any help would be appreciated.
Thanks,
Palma