powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Qt и MSSQL 2005
10 сообщений из 35, страница 2 из 2
Qt и MSSQL 2005
    #38403528
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chagosergMSSQL 2005, Qt 4.8, QODBC
Имеется хранимая процедура простого содержания:

Код: sql
1.
select field1,field2 from SomeTable



Отрабатывает без проблем.
Изменяю текст процедуры на:

Код: sql
1.
2.
if 3=3
	select field1,field2 from SomeTable




(IF 3=3 для примера, на самом деле любая проверка)
Ошибок запроса нет, но и результата на клиенте нет тоже.
При попытке тут же повторить запрос ответ "Подключение занято".

[Microsoft][ODBC SQL Server Driver]Подключение занято до получения результатов для другого hstmt QODBC3: Unable to execute statement


При этом другой клиент (не Qt) через ODBC в обоих случаях результат получает.
В чём может быть проблема?

А, это...

Есть ещё один прикол.

Поставь в процедуре, в самом начале, оператор


Set nocount on
...
Рейтинг: 0 / 0
Qt и MSSQL 2005
    #38403535
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Koschey,

Я не заметил сразу, что это старая тема.

На самом деле это все были какие-то необъяснимые глюки. Решения в топике нет.

Я может мог бы посмотреть на это дело, но для этого нужны не просто слова, а точное репро.
...
Рейтинг: 0 / 0
Qt и MSSQL 2005
    #38403734
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся с такой же проблемой. В хранимой процедуре нельзя ничего разместить кроме одного селекта.
Воспользовался советом Fte.

Я что то путных советов от него в теме не, видел.

Идея с функцией с инструкциями, ...

Дальше идет какой-то совсем непонятный тест, который я лично вообще не понимаю.
...
Рейтинг: 0 / 0
Qt и MSSQL 2005
    #38403759
Koschey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

Здесь автор привел не совсем удачный пример, поставив условие перед запросом.
На самом деле всё равно, что написать в процедуре перед селектом. Я например просто присваивал значения локальным переменным:
declare
@loc_idUSer int,
@loc_dFlight datetime,
@loc_dUpdate datetime
set @loc_idUser = @idUser
set@loc_dFlight = cast(@dDateFlight as datetime)
set @loc_dUpdate = cast(@dLastUpdate as datetime)

select a1, a2, a3 from table1 where ....

Если убрать присваивания и оставить только селект все работает нормально, вернуть на место и набор не возвращается.
С NOCOUNT я то же экспериментировал.
...
Рейтинг: 0 / 0
Qt и MSSQL 2005
    #38403760
Koschey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А Fte предложил вместо процедуры использовать функцию возвращающую набор данных:

modelFPList->setQuery("select * from dbo.myfunc(2)");

Так получается получить данные.
...
Рейтинг: 0 / 0
Qt и MSSQL 2005
    #38404069
chagoserg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле вся проблема в QSqlQueryModel, которая не поддерживает forwardOnly запросы.
Проблема давно решена созданием собственной модели.

>Здесь автор привел не совсем удачный пример, поставив условие перед запросом.
Пример вполне себе удачный - он воспроизводит ошибку, которая изначально вообще была не понятно в чём :)

А в результате выяснилось, что простые запросы и результаты табличных функций возвращаются нормальными запросами, а все остальные - forwardOnly.

Если есть вопросы - отвечу с удовольствием, но только через неделю ;)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Qt и MSSQL 2005
    #39049279
_s_e_r_g_e_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята , помогите пожалуйста.
Пытаюсь заливать данные из процедуры в QTableView. В результате ничего не возхвращается, хотя названия полей и даже количество строк есть , но сами ячейки пустые.
В посте выше было указано, что QSqlQueryModel, которая не поддерживает forwardOnly запросы, но как решать данную проблему
я так и не понял.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 QSqlQueryModel *model = new QSqlQueryModel;

     model->query().setForwardOnly(true);
     model->setQuery("{call AAAA}");
     model->query().exec();


    QTableView *tableview = new QTableView;
    tableview->setModel(model);


    tableview->show();
...
Рейтинг: 0 / 0
Qt и MSSQL 2005
    #39049347
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_s_e_r_g_e_,

что QSqlQueryModel не поддерживает forward-only -курсоры, я не уверен. Я помню, что вроде бы его использовал, но я запросы использовал всегда только в процедурах, т.е. они должны были быть 100% forward-only -курсоры.

Даже если не поддерживает -- ты можешь не использовать QTableView или не использовать QSqlQueryModel, а написать свою модель (проще) или свою view (сложнее).
...
Рейтинг: 0 / 0
Qt и MSSQL 2005
    #39049354
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде бы в доке ничего такого не сказано про QTableView, что она должна базироваться на двунаправленном курсоре.
...
Рейтинг: 0 / 0
Qt и MSSQL 2005
    #39049362
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_s_e_r_g_e_Ребята , помогите пожалуйста.
Пытаюсь заливать данные из процедуры в QTableView.

Модератор: В следующий раз создавай новую тему. Если нужно сослаться на старую тему, есть для этого ссылки.
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Qt и MSSQL 2005
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]