crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Хранимы процедуры
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Гость Дата 6.10.2010, 12:22
  Проверь саму хранимую процедуру T-SQL. Если у тебя в теле процедуры кроме SELECT есть еще другие иструкции, то в начале процедуры поставь set nocount on
amakaro4 Дата 29.9.2009, 17:51
  Уточни пожалуйста на тему переопределить.

QT последний для WINDOWS

все... вечер... туплю...

переопределить, переопределю, но похоже это косяк связанный с 2008 серваком.... Потому как на 2000 все хорошо
Litkevich Yuriy Дата 29.9.2009, 17:36
  Я думаю, что нужно драйвер мускула для Qt собрать. И пробовать с ним.
П.С. А врсия Qt какая?
BRE Дата 29.9.2009, 17:33
 
Цитата(amakaro4 @ 29.9.2009, 18:17) *
все тоже самое....

Все же я склоняюсь к мысли о том, что все беды с моделью происходят из-за того, что query возвращает в качестве размера -1.
Модели нужно точно знать количество строк и столбцов данных.
Попробуй вычислять количество строк ответа руками:
int rows = 0;
while( query.next() )
    rows++;


Переопределить класс QSqlQueryModel и после установки запроса рассчитывать количество строк. И это значение возвращать в методе модели rowCount(...).
amakaro4 Дата 29.9.2009, 17:17
  все тоже самое....
BRE Дата 29.9.2009, 17:11
 
Цитата(amakaro4 @ 29.9.2009, 17:56) *
попробовал другие - ничего

Попробуй следующий код:
QSqlQuery ql;
ql.setForwardOnly( true );
ql.exec( "{call src_License}" );
model->setQuery( ql );
while( model->canFetchMore() )
    model->fetchMore();

view->setModel( model );
amakaro4 Дата 29.9.2009, 16:56
  все тоже самое....

прямой запрос к таблице - данные
запрос через процедуру - только колонки... и при том только по команде execute src_License

попробовал другие - ничего
Litkevich Yuriy Дата 29.9.2009, 16:44
 
Цитата(amakaro4 @ 29.9.2009, 20:35) *
возвращает 53
Это означает, что столбцов (полей), возвращаемых запросом = 53

Предлагаю, такой тест. Запусти демку %QTDIR%/domos/sqlbrowser
Подключись к БД, и в поле запроса введи вызов ХПв стиле принятом в Мускуле.
amakaro4 Дата 29.9.2009, 16:35
 
Цитата(Litkevich Yuriy @ 29.9.2009, 17:24) *
amakaro4, перестань цитировать целыми сообщениями.

Как себя ведёт:
q.exec("call src_license");

При вкл. и выкл. setForwardOnly?



вовсех случаях int numRows = ql.at(); равен -1 как и ql.size()... Значения при этом не набираются... С фигурными скобками numRows = 0 и значения набираются...

QSqlRecord rec = ql.record();
qDebug() << rec.count();

возвращает 53... может блин с этим как-то поиграться
Litkevich Yuriy Дата 29.9.2009, 16:24
  amakaro4, перестань цитировать целыми сообщениями.

Как себя ведёт:
q.exec("call src_license");

При вкл. и выкл. setForwardOnly?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.4.2024, 20:49