Russian Qt Forum

Qt => Базы данных => Тема начата: NWhisper от Январь 28, 2007, 12:45



Название: [Qt 4.2.2] Не удается использовать QSqlQuery
Отправлено: NWhisper от Январь 28, 2007, 12:45
Всем привет!

Есть такой пример:
Код:

#include <QtSql>
#include <QtGui>

#include <iostream>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QSqlDatabase db;
    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("test1.brd");
    if (!db.open())
    {
        std::cout << "Can't open the database.\n";
        return 1;
    }
    QSqlQuery query;
    query.prepare("SELECT * FROM tbl;");
    if (!query.exec())
    {
        std::cout << "Can't exec SQL.\n";
        return 1;
    }
    std::cout << db.tables().size() << std::endl;
    std::cout << query.size() << std::endl;
    db.close();
    return 0;
}

std::cout << db.tables().size() << std::endl; - показывает 7 таблиц, как и должно быть.
std::cout << query.size() << std::endl; - показывает -1, хотя в таблице tbl 6 записей...
Судя по книгам и форумам я пишу все правильно, но судя по результату - где-то косяк. Подскажите, плиз!


Название: [Qt 4.2.2] Не удается использовать QSqlQuery
Отправлено: staks от Январь 28, 2007, 13:25
cuery != query

в контексте std::cout << cuery.size() << std::endl;


Название: [Qt 4.2.2] Не удается использовать QSqlQuery
Отправлено: NWhisper от Январь 28, 2007, 13:31
Цитата: "staks"
cuery != query

в контексте std::cout << cuery.size() << std::endl;

Это я опечатался, когда пример набирал... Внес исправления.
Вопрос остается открытым!


Название: [Qt 4.2.2] Не удается использовать QSqlQuery
Отправлено: Steven_Orko от Январь 28, 2007, 15:48
Returns the size of the result (number of rows returned), or -1 if the size cannot be determined or if the database does not support reporting information about query sizes.

Попробуй так:
Код:
while (query.next()) {
         
         doSomething(query);
     }