Всем привет!
Метод QSqlQuery::size() возвращает -1. Из документации следует, -1 возвращается тогда, когда таблица не выделена, таблица не активна. Также там упоминается, что -1 возвращается, когда невозможно подсчитать размер и, когда бд не содержит информации о кол-ве строк. (Возможно я что-нибудь напутал)
Методы isActive() и isSelect() возвращаю true, значит остаются только последние два варианта. В чем может быть проблема?
C++ (Qt)
void MainWindow::update_doc()
{
QTreeWidget *pTreeWidget = qobject_cast<QTreeWidget*>(dListTask->widget());
QTreeWidgetItem *pitem = 0;
qDebug() << task_table.size();
if(!task_table.exec("select * from task_list"))
qDebug() << task_table.lastError().text();
qDebug() << task_table.isActive();
qDebug() << task_table.isSelect();
qDebug() << task_table.size();
// value(int)
// 0 - id
// 1 - task_create
// 2 - task_dead
// 3 - task_rem
// 5 - des
while(task_table.next())
{
pitem = new QTreeWidgetItem(pTreeWidget);
pitem->setText(0, task_table.value(1).toString());
}
}
void MainWindow::slot_open_user_database(QString str_user, QString str_path)
{
user_name = str_user;
task_database = QSqlDatabase::addDatabase("QSQLITE", "open_database");
task_database.setDatabaseName(str_path + user_name + ".data");
if(!task_database.open())
{
qDebug() << task_database.lastError().text();
return;
}
task_table = QSqlQuery(task_database);
update_doc();
this->show();
}