Russian Qt Forum

Qt => Базы данных => Тема начата: kaw от Октябрь 01, 2010, 10:42



Название: Проблема QIBASE
Отправлено: kaw от Октябрь 01, 2010, 10:42
Проблема заключается в том, что запрос возвращает всего 6 строк из 7000
Код:
    db = db.addDatabase("QIBASE");
    db.setDatabaseName(server+":"+path_base);
    db.setUserName("SYSDBA");
    db.setPassword("masterkey");
    ui->textEdit->append(trUtf8("Соединение с базой:"));
            if (!db.open())
            {
                ui->textEdit->append(trUtf8("Ошибка!"));
            }
            else
            {
                ui->textEdit->append(trUtf8("Успешно!"));
            }
    query = new QSqlQueryModel();
    query->setQuery("select * from svodprice ");
    ui->tableView->setModel(query);
    ui->tableView->show();

в чем проблема не пойму.


Название: Re: Проблема QIBASE
Отправлено: daspisch от Октябрь 01, 2010, 11:15
Запрос или tableView не отображает всё?
Кстати
Код:
ui->textEdit->append(trUtf8("Ошибка!"));
заменить на
Код:
ui->textEdit->append(trUtf8(db.lastError().text());
Да и после выполнения запроса неплохо бы глянуть
Код:
query->lastError().text()


Название: Re: Проблема QIBASE
Отправлено: kaw от Октябрь 01, 2010, 11:56
query->lastError().text(); пусто, тобишь ошибок в запросе нет, да и не может быть, проверено в IBExpet.

Как я понимаю, tableView тут не причем, байда в результате: query->rowCount(); возвращает 6;
тот же запрос в IBExpet выдает 7000 строк.


Название: Re: Проблема QIBASE
Отправлено: daspisch от Октябрь 01, 2010, 12:12
попробуй с помощью
Код:
bool QSqlQueryModel::canFetchMore ( const QModelIndex & parent = QModelIndex() ) const   [virtual]
узнать не осталось ли "непереданных" результатов


Название: Re: Проблема QIBASE
Отправлено: kaw от Октябрь 01, 2010, 12:44
 
Код:
bool can = query->canFetchMore(); 

возвращает FALSE;