Russian Qt Forum
Ноябрь 24, 2024, 03:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Postgre+Qt  (Прочитано 8184 раз)
bez_glaz
Гость
« Ответ #15 : Сентябрь 15, 2011, 13:28 »

ура! 3 раза =)))
Вернулся к первоначальному  способу "коннекта"
Код:
    db.setHostName("localhost");
    db.setDatabaseName("ras4et");
    db.setUserName("postgres");
    db.setPassword("postgres");
всё заработало )
Скорее всего что-то не так было вот с этими параметрами
Код:
#define DEFAULT_DB_HOSTNAME     "localhost"
#define DEFAULT_DB_NAME         "ras4et"
#define DEFAULT_DB_USERNAME     "postgres"
#define DEFAULT_DB_PASSWORD     "postgres"
и последущей их обработки, потом про этот способ по подробнее почитаю, взял его с примера прошлого проекта, где всё нормально работало.


Теперь сразу же следущий вопрос который у меня возник.

При обработки
Код:
while (query.next())
        name = query.value(0).toInt();
        msgBox.setText(QString::number(name));
        msgBox.exec();
    }
почему то выдаёт сначала последнее значение в таблицы, потом переводит указатель на 1-ый элемент и тд проходит по всем элементами, до предпоследнего, затем цикл оканчивается, а должно быт как-то так:

Цитировать
Если вызвать метод QSqlQuery::next() один раз, то он переместит указатель к первой записи. После этого необходимо повторять вызов next(), чтобы получать доступ к другим записям, до тех пор пока он не вернет false. 
Записан
andrew.k
Гость
« Ответ #16 : Сентябрь 15, 2011, 13:44 »

почему то выдаёт сначала последнее значение в таблицы, потом переводит указатель на 1-ый элемент и тд проходит по всем элементами, до предпоследнего, затем цикл оканчивается, а должно быт как-то так:

Цитировать
Если вызвать метод QSqlQuery::next() один раз, то он переместит указатель к первой записи. После этого необходимо повторять вызов next(), чтобы получать доступ к другим записям, до тех пор пока он не вернет false. 

в запросе добавь order by что-нибудь.
Потому без сортировки запрос выводит данные в том порядке в каком они хранятся в БД.
А если они у тебя меняются, то и порядок их нарушается. Последний измененный идет в конец или в начало не помню.
Записан
bez_glaz
Гость
« Ответ #17 : Сентябрь 15, 2011, 14:01 »

Спасибо всем разобрался сам =)
Ничего не надо всё и так идеально выводится без лишних зарезервированных операндов SQL, просто почему то в postgre данные визуально (даже если просто просматриваешь записи в таблице) сортируются по возрастанию(не заметил сразу когда вносил через pgAdmin даные), хотя в таблице хранятся по мере добавления. При запросе из приложения берутся данные так, как они хранятся изначально.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 21.