Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ф-я возвращает setof record. Как обработать на C#?
|
|||
|---|---|---|---|
|
#18+
Доброго всем времени суток! С postgreSql совсем недавно и наступаю на очередные грабли... Есть функция Код: plaintext 1. 2. 3. 4. Клиент .NET WinForms. На C#. Код такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 23:18 |
|
||
|
Ф-я возвращает setof record. Как обработать на C#?
|
|||
|---|---|---|---|
|
#18+
Какой запрос посылает клиент ? Если Код: plaintext Думаю дело в Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 08:29 |
|
||
|
Ф-я возвращает setof record. Как обработать на C#?
|
|||
|---|---|---|---|
|
#18+
Явно написать запрос - это, конечно, можно. Точно так же, как и писать функции, которые возвращают только какие-то одни данные (например, setof oid или setof name , Только для запросов придется делать NpgsqlCommand.Prepare() , и все равно такой подход мне не нравится, т.к. сервер для каждого запроса каждый раз будет вычислять план, что скажется на производительности. Ну не подходит мне это. Да и не верю, что нужная мне функциональность не реализована в постгрессе, "это же азы" (с) не помню, как говорится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 09:36 |
|
||
|
Ф-я возвращает setof record. Как обработать на C#?
|
|||
|---|---|---|---|
|
#18+
Похоже мы говорим о разном. Я подозреваю что приложение посылает запрос Код: plaintext Код: plaintext Код: plaintext Для каждого вашего запроса сервер в любом случае будет вычислять план. План выполнения процедуры хранится, насколько это хорошо - вопрос спорный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 10:01 |
|
||
|
Ф-я возвращает setof record. Как обработать на C#?
|
|||
|---|---|---|---|
|
#18+
Включил лог у провайдера данных и все выяснилось. Весь лог не выкладываю, в двух-фразах: провайдер данных после нескольких итераций обмена инфой с сервером выдает ему запрос select * from admin_getroles() . :( После правки кода следующим образом Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 12:13 |
|
||
|
Ф-я возвращает setof record. Как обработать на C#?
|
|||
|---|---|---|---|
|
#18+
Попробуйте запрос вида: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 12:26 |
|
||
|
Ф-я возвращает setof record. Как обработать на C#?
|
|||
|---|---|---|---|
|
#18+
Спасибо большое, это решение работает. Но в свете предыдущего бага буду теперь крепко думать, делать ли проект на PostgreSql, или же как и планировал изначально, сделать все на Firebird'е, хотя и у него не без глюков :( Но все же интересно, можно ли из функции вернуть данные так же, как и из такого запроса, что приведен выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 12:43 |
|
||
|
Ф-я возвращает setof record. Как обработать на C#?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 13:24 |
|
||
|
Ф-я возвращает setof record. Как обработать на C#?
|
|||
|---|---|---|---|
|
#18+
Глянул. В который раз. И похоже, что дорога одна - к созданию типов или же делать запросы наподобие вышеприведенного. Буду теперь думать, как лучше сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 14:04 |
|
||
|
Ф-я возвращает setof record. Как обработать на C#?
|
|||
|---|---|---|---|
|
#18+
а вам обязательно использовать set of функции? может проще было бы возвращать курсор приложению? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 15:02 |
|
||
|
Ф-я возвращает setof record. Как обработать на C#?
|
|||
|---|---|---|---|
|
#18+
Оно-то можно, но как-то некрасиво получается :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 17:09 |
|
||
|
Ф-я возвращает setof record. Как обработать на C#?
|
|||
|---|---|---|---|
|
#18+
Yuriy YurchenkoСпасибо большое, это решение работает. Но в свете предыдущего бага буду теперь крепко думать, делать ли проект на PostgreSql, или же как и планировал изначально, сделать все на Firebird'е, хотя и у него не без глюков :( Но все же интересно, можно ли из функции вернуть данные так же, как и из такого запроса, что приведен выше. Pardon ,a chto meshaet vam opredelit' f-iu s OUT parametrami: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 18:36 |
|
||
|
Ф-я возвращает setof record. Как обработать на C#?
|
|||
|---|---|---|---|
|
#18+
СергейК А что, в постгрессе через out-параметры можно получить данные из нескольких строк? Например, Код: plaintext 1. 2. В документации я это что-то не встречал, да и синтаксис SQL как языка не позволяет... :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 19:24 |
|
||
|
Ф-я возвращает setof record. Как обработать на C#?
|
|||
|---|---|---|---|
|
#18+
Yuriy Yurchenko В документации я это что-то не встречал, да и синтаксис SQL как языка не позволяет... :D :-)) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 19:29 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34282236&tid=2005760]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
167ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 478ms |

| 0 / 0 |
