crossplatform.ru

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

 
Тема закрытаНачать новую тему
> qt + firebird + хранимые процедуры
denis
  опции профиля:
сообщение 17.8.2009, 12:29
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 10.8.2009
Пользователь №: 993

Спасибо сказали: 0 раз(а)




Репутация:   0  


столкнулся с проблемой: необходимо получить доступ к скалярному результату выполнения процедуры firebird. подробнее в коде:

хранимая процедура GETANAGRAM (вход - :keyword, выход - :word)
BEGIN
  FOR SELECT word FROM words WHERE keyword = :keyword INTO :word
  DO SUSPEND;
END


в клиенте:
...
    QSqlQuery query(db);
    query.prepare("EXECUTE PROCEDURE GETANAGRAM(:keyword)");
    query.bindValue(":keyword", sort(word));
    query.exec();
    while (query.next()){
        QString anagram = query.value(0).toString();
        resultStringList << anagram;
    }
...


при этом в resultStringList отправляется только крайнее из найденных значений, а необходимо получить весь скаляр. просьба, объяснить, каким образом это осуществить.
Причина редактирования: используй тэг code
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.8.2009, 13:25
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Процедуры в Firebirde делятся на два типа:
1) Процедуры выполнения (возвращают одно значение) которые вызываются с помощью EXECUTE PROCEDURE MYPROCEDURE
1) Процедуры выбора (возвращают много значений благодаря SUSPEND) которые вызываются как обычные таблицы, т.е. с помощью SELECT * FROM MYPROCEDURE
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
denis
  опции профиля:
сообщение 17.8.2009, 14:30
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 10.8.2009
Пользователь №: 993

Спасибо сказали: 0 раз(а)




Репутация:   0  


благодарю за развернутый ответ
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Тема закрытаНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.9.2019, 12:50