Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Многострочный результат запроса (QT + С++)
|
|||
|---|---|---|---|
|
#18+
PostgreSQL 8.2.3 + QT 4.2.0 + C++ Хочу передать в программу-клиент (на С++) многострочный результат запроса. По условию необходимо работать с базой только через ХП. (Т.е. SQL-инструкции в явном виде в сишном коде присутствовать не должны) Создана процедура вида Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Вот как бы ее в клиенте вызвать. Если возможно, ткните в образец кода. Или лучше другие конструкции использовать? Курсор, например? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 16:09 |
|
||
|
Многострочный результат запроса (QT + С++)
|
|||
|---|---|---|---|
|
#18+
уже ж вроде бы не раз и не два обсуждалось на форуме... попробуйте поиском ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 16:25 |
|
||
|
Многострочный результат запроса (QT + С++)
|
|||
|---|---|---|---|
|
#18+
Вот кусок кода если еще не нашел. QString queryStr = QString( "SELECT " "R.guid," "R.name," "R.description" "FROM " "table R JOIN ;") QSqlQuery query(queryStr, db); QSqlRecord rec = query.record(); if (!rec.isEmpty()) { while (query.next()) { const int& indexOfGuid = rec.indexOf("guid"); const int& indexOfName = rec.indexOf("name"); const int& indexOfDescription = rec.indexOf("description"); qint64 guid = query.value(indexOfGuid).toLongLong(); QString name = query.value(indexOfName).toString(); QString description = query.value(indexOfDescription).toString(); } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 17:16 |
|
||
|
Многострочный результат запроса (QT + С++)
|
|||
|---|---|---|---|
|
#18+
Хе-хе ;-) Спасибо. Только не должно быть там конструкций вида Код: plaintext 1. 2. 3. 4. 5. 6. Только через хранимки с базой работаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 17:41 |
|
||
|
Многострочный результат запроса (QT + С++)
|
|||
|---|---|---|---|
|
#18+
Дык я для примера. Я так понял загвоздка то была не в этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 18:00 |
|
||
|
Многострочный результат запроса (QT + С++)
|
|||
|---|---|---|---|
|
#18+
Затруднение, собственно, именно в том, чтобы в си эту процедуру вызвать, и получить неким образом выходные параметры. И вот не вполне мне понятно, как это корректно сделать - то ли надо получать некий массив, то ли в клиенте какой-то цикл должен работать (ну по аналогии с while (query.next()) ) А должно же быть какое-то простое решение - дейсвие-то тривиальное..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 18:15 |
|
||
|
Многострочный результат запроса (QT + С++)
|
|||
|---|---|---|---|
|
#18+
select * from func() as (f1 type1, f2 type2..) без as - переписать функцию с out параметрами возвращать рефкурсор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 18:21 |
|
||
|
Многострочный результат запроса (QT + С++)
|
|||
|---|---|---|---|
|
#18+
Я не понял какая разница какой запрос в С++: из процедуры или напрямую? Проверяеш запрос в SQL редакторе и вставляеш его в С++. Если вопрос как выбрать из процедуры вообще, то вот пример: select guid , name , description from SELECT_OBJECT_BY_PARENTS(0, 'region') as ( guid bigint, name varchar(20), description varchar(50) ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 18:34 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=297&tid=2005453]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 370ms |

| 0 / 0 |
