Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
BRE |
29.9.2009, 15:07
Сообщение
#21
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44
|
Цитата(amakaro4 @ 29.9.2009, 16:02) Link true true -1 "1468" "1469" "1470" "1471" "1472" "1473" "1474" "1475" "1476" "1548" опять только колонки Вроде где то читал, что при некоторых параметрах количество строк нельзя определить, т.е. возможно при forwardOnly == true, это так и есть. Поэтому size() и возвращает -1, возможно это нормально. А сами данные это то что надо? Тогда, скорее всего, запрос отрабатывает нормально и нужно разбираться с моделью. |
|
|
|
|
amakaro4 |
29.9.2009, 15:10
Сообщение
#22
|
|
Студент ![]() Группа: Новичок Сообщений: 18 Регистрация: 28.9.2009 Пользователь №: 1123 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(BRE @ 29.9.2009, 16:07) Link Цитата(amakaro4 @ 29.9.2009, 16:02) Link true true -1 "1468" "1469" "1470" "1471" "1472" "1473" "1474" "1475" "1476" "1548" опять только колонки Вроде где то читал, что при некоторых параметрах количество строк нельзя определить, т.е. возможно при forwardOnly == true, это так и есть. Поэтому size() и возвращает -1, возможно это нормально. А сами данные это то что надо? Тогда, скорее всего, запрос отрабатывает нормально и нужно разбираться с моделью. Сами данные верны... Это ID-шники |
|
|
|
|
BRE |
29.9.2009, 15:52
Сообщение
#23
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44
|
Цитата(amakaro4 @ 29.9.2009, 16:10) Link Сами данные верны... Это ID-шники Какие еще мысли есть... Если количество строк ответа QSqlQuery определить не может (возможно из-за forwardOnly == true), то модель такую ситуацию нормально обработать не может, т.к. ей для работы необходимо знать точное количество строк и столбцов. Возможно я все усложняю, но можно попробовать получать количество строк самому. Соответственно придется переопределить класс QSqlQueryModel для использования этого значения. Повторюсь, возможно я все усложняю и это можно сделать проще. Кстати, можно попробовать поиграться с fetchMore. Из assistant: Цитата void QSqlQueryModel::fetchMore ( const QModelIndex & parent = QModelIndex() ) [virtual]
Fetches more rows from a database. This only affects databases that don't report back the size of a query (see QSqlDriver::hasFeature()). To force fetching of the entire database, you can use the following: while (myModel->canFetchMore()) myModel->fetchMore(); parent should always be an invalid QModelIndex. Reimplemented from QAbstractItemModel. This function was introduced in Qt 4.1. See also canFetchMore(). |
|
|
|
|
Litkevich Yuriy |
29.9.2009, 15:55
Сообщение
#24
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(amakaro4 @ 29.9.2009, 19:02) Link {call src_License} а откуда такая форма записи? с какой СУБД работаешь?
|
|
|
|
|
amakaro4 |
29.9.2009, 15:59
Сообщение
#25
|
|
Студент ![]() Группа: Новичок Сообщений: 18 Регистрация: 28.9.2009 Пользователь №: 1123 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(Litkevich Yuriy @ 29.9.2009, 16:55) Link Цитата(amakaro4 @ 29.9.2009, 19:02) Link {call src_License} а откуда такая форма записи? с какой СУБД работаешь?MSQL через ODBC поскольку на прямую не получилось... правильный вызов exec src_License но команду exec модель выплевывает с ошибкой |
|
|
|
|
Litkevich Yuriy |
29.9.2009, 16:03
Сообщение
#26
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Например, я при работе с firebird, через ODBC. Использую радную для Firebird форму запроса:
Вместо абстрактно ODBC'шной Цитата(amakaro4 @ 29.9.2009, 19:59) Link правильный вызов exec src_License но команду exec модель выплевывает с ошибкой Вот это читал: Link?Попробуй такую форму записи, вне зависимости от драйвера |
|
|
|
|
amakaro4 |
29.9.2009, 16:18
Сообщение
#27
|
|
Студент ![]() Группа: Новичок Сообщений: 18 Регистрация: 28.9.2009 Пользователь №: 1123 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(Litkevich Yuriy @ 29.9.2009, 17:03) Link Например, я при работе с firebird, через ODBC. Использую радную для Firebird форму запроса: Вместо абстрактно ODBC'шной Цитата(amakaro4 @ 29.9.2009, 19:59) Link правильный вызов exec src_License но команду exec модель выплевывает с ошибкой Вот это читал: Link?Попробуй такую форму записи, вне зависимости от драйвера из всех способов вернул хотя бы колонки только ql.exec("execute src_License"); были испробованы: "{call execute src_license}" "{call src_license}" // ВОЗВРАЩАЕТ КОЛОНКИ "execute procedure src_license" |
|
|
|
|
Litkevich Yuriy |
29.9.2009, 16:24
Сообщение
#28
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
amakaro4, перестань цитировать целыми сообщениями.
Как себя ведёт: При вкл. и выкл. setForwardOnly? |
|
|
|
|
amakaro4 |
29.9.2009, 16:35
Сообщение
#29
|
|
Студент ![]() Группа: Новичок Сообщений: 18 Регистрация: 28.9.2009 Пользователь №: 1123 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(Litkevich Yuriy @ 29.9.2009, 17:24) Link amakaro4, перестань цитировать целыми сообщениями. Как себя ведёт: При вкл. и выкл. setForwardOnly? вовсех случаях int numRows = ql.at(); равен -1 как и ql.size()... Значения при этом не набираются... С фигурными скобками numRows = 0 и значения набираются... QSqlRecord rec = ql.record(); qDebug() << rec.count(); возвращает 53... может блин с этим как-то поиграться |
|
|
|
|
Litkevich Yuriy |
29.9.2009, 16:44
Сообщение
#30
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(amakaro4 @ 29.9.2009, 20:35) Link возвращает 53 Это означает, что столбцов (полей), возвращаемых запросом = 53Предлагаю, такой тест. Запусти демку %QTDIR%/domos/sqlbrowser Подключись к БД, и в поле запроса введи вызов ХПв стиле принятом в Мускуле. |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 23.12.2025, 8:36 |