Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Есть например процедура Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. как получить список выводимых полей хранимой процедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 09:36 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
PG81как получить список выводимых полей хранимой процедуры Получить где - на клиенте или на сервере ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 09:38 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
сорри нужен sql запрос к системным таблицам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 09:40 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
PG81, select * from sys.parameters as p where p.object_id = object_id('schema.proc') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 09:44 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
хмхмхмPG81, select * from sys.parameters as p where p.object_id = object_id('schema.proc')При чём здесь параметры? А если процедура возвращает несколько датасетов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 09:50 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
iap, об этом я не подумал, но по идее предполагается, что процедура возвращает только один датасет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 09:54 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
PG81но по идее предполагается, что процедура возвращает только один датасет Т.е. сервер должен запрещать создание процедур, которые возвращают множество наборов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 09:55 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
PG81iap, об этом я не подумал, но по идее предполагается, что процедура возвращает только один датасетНо параметры-то по-любому здесь не при чём. Надо же узнать поля датасетов. На клиенте, кстати, это всё можно сделать. В компонентах ADO, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 09:57 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
PG81как получить список выводимых полей хранимой процедурыЗачем? Чтобы динамически построить таблицу и положить в нее результата выполнения процедуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 10:07 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
invm, да именно так. Но там все несколько сложнее. В БД есть описание форм, датасетов, полей и как все это взаимодействует между собой. По этому описанию динамически создаются формы и все их содержимое. При создании пользователем описания полей, чтобы самому поштучно не добавлять поля, реализована процедура которая открывает датасет, смотрит какие там поля и создает их описания в БД. Потом уже пользователь может вводить дополнительные свойства этих полей. Я решил переделать этот механизм и найти возможность добавления описания полей процедурой в БД без открывания датасета, если это возможно конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 10:22 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Glory, наверное нет необходимости запрещать несколько датасетов у меня среди сотен процедур в БД нет ни одной где бы использовалась такая возможность. Но если вдруг такая появится, то может просто список полей первого датасета ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 10:26 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
PG81наверное нет необходимости запрещать несколько датасетов у меня среди сотен процедур в БД нет ни одной где бы использовалась такая возможность. Тогда почему вы не создаете объекты, которые по своей изначальной природе всегда возвращают один, заранее определенный набор ? Что и позволяет иметь информацию об этом наборе в системных таблицах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 10:28 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Glory, так вот именно такие хранимки и делаю авторЧто и позволяет иметь информацию об этом наборе в системных таблицах у меня как раз вопрос как получить эту информацию запросом SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 10:32 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
PG81так вот именно такие хранимки и делаю Еще раз Хранимая процедура может возвращать много наборов. И ваше личное обязательство не возращать больше одного набора ничего не меняет. PG81у меня как раз вопрос как получить эту информацию запросом SQL? Для объектов, которые могут возаращать только один набор по своей приводе, информация о столбцах хранится в sys.columns ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 10:35 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Glory, Код: sql 1. 2. 3. Этот запрос возвращает список параметров процедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 10:43 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
PG81Этот запрос возвращает список параметров процедуры Вы ответы читаете вообще ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 10:46 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
iap, сорри, с утра видимо не проснулся. Показалось, что автор спрашивал именно про параметры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 10:48 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Glory, авторДля объектов, которые могут возвращать только один набор по своей приводе, информация о столбцах хранится в sys.columns попробовал такой запрос Код: sql 1. 2. 3. Выдает пусто. Видимо что-то делаю не так. Отсюда вопросы 1.Что значит объекты, которые могут возвращать только один набор по своей природе?как-то по особенному делать хп или что? 2.Что я делаю не так или где я не внимательно прочитал что-то прочитал ответы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 10:55 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 10:55 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
PG81, Можно попробовать поковыряться в тексте процедуры, возвращаемым запросом: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 10:55 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
PG81Отсюда вопросы 1.Что значит объекты, которые могут возвращать только один набор по своей природе?как-то по особенному делать хп или что? Это те объекты, в которых физически невозможно написать возврат нескольких наборов. Потому что это будет нарушением синтаксиса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 10:57 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
а помоему ТС пошел по пути потыки написать очередной "совершенно независимый код" со все5ми вытекающими.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 10:57 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
PG81, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 12:45 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Maxxа помоему ТС пошел по пути потыки написать очередной "совершенно независимый код" со все5ми вытекающими....как вариант - выполнить процедуру, получить датасет, зачитать поля и их типы. Будет независимо. Можно даже узнать сколько датасетов у ХП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 12:57 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
LSVкак вариант - выполнить процедуру, получить датасет, зачитать поля и их типы. Будет независимо. Можно даже узнать сколько датасетов у ХП. я откровенно не разделяю ваш "оптимизм" по поводу таких систем... Зачем ето пытаються делать - язнаю, НО пратическое применение такого - в моем понимаю ето производная между граблефабрикой и условно поддерживаемым кодом. Не стоит пытать рожать "ООП" на скл, не его ето стихия. Опять же -все ето мое скромное имхо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 13:04 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Если младше 2012-го: Метаданные первого возвращаемого набора Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ЗЫ: Для процедур, возвращающих набор из временной таблицы, работать не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 13:06 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
invm, Я же выше привел код, которым пользуется LinqToSql для получения метаинформации для хранимых процедур. Там все наборы выдает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 14:01 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВinvm, Я же выше привел код, которым пользуется LinqToSql для получения метаинформации для хранимых процедур. Там все наборы выдает. ТСу нужно получить информацию о рекордсете(ах) на tsql. Какой ему прок от пустых рекордсетов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 14:24 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВinvm, Я же выше привел код, которым пользуется LinqToSql для получения метаинформации для хранимых процедур. Там все наборы выдает. a вы различаете "все наборы" и " метаданные первого набора"? to invm : пример не очень рабочий: Msg 201, Level 16, State 4, Procedure spTest, Line 0 Procedure or function 'spTest' expects parameter '@a', which was not supplied. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 14:32 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Выложил вариант с ошибкой. Исправленный: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 14:33 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
invm, оперативно :) спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 14:35 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
invm, вывелось такое сообщение SQL ServerSQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', see "Surface Area Configuration" in SQL Server Books Online. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 18:51 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
PG81вывелось такое сообщениеНу так в сообщении и написано, что нужно сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 19:12 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
invm, да ладно, там указано только, что админ может это сделать, но совсем не рассказывают, как его на такое подбить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 20:26 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
o-oно совсем не рассказывают, как его на такое подбить К каждому админу нужен индивидуальный подход ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 20:45 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
invm, политику конфиденциальности нарушать запретили сделал по простому. Пользователь указывает таблицу и добавляются все поля таблицы, а потом если нужно может удалить ненужные или еще добавить удалять проще чем руками забивать все поля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2015, 00:00 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВPG81, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. хотел бы добавить: если процедура содержит динамический sql, при установленном "SET FMTONLY ON" её выполнение в некоторых случаях может завершаться ошибкой (зависит от sql). В таких ситуациях можно подхимичить в процедуре, чтоб даже при при установленном "SET FMTONLY ON" возвращать схему: Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2015, 16:28 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Alexander Us, если честно то не понял что к чему по отдельности все понятно, но что вы имели ввиду я не понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2015, 17:35 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
PG81, это к тому, что в процедурах с определенным IF/dynamic sql при FMTONLY ON поджидает засада с ошибкой, вот пример, кода, запускать с fmtonly off и fmtonly on: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. соответственно, если это оформить в виде процедуры, то и код invm упадет с той же ошибкой: (0 row(s) affected) Msg 208, Level 16, State 1, Procedure spTest, Line 6 Invalid object name '#t'. умничающие построители отчетов этим страдают, вот темка по этому поводу, где любимейший ВО вываливает ошибку "горе от ума" из-за присутствия динамики в процедуре: передача параметра в процедуру через sp_execute ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2015, 02:06 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
вот еще камрад по ВО с той же печалью и workaround-ы: багофича FMTONLY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2015, 02:12 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Передача табличных данных из хранимой процедуры: http://habrahabr.ru/post/217649/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2015, 22:25 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
invmВыложил вариант с ошибкой. Исправленный: Код: sql 1. 2. 3. 4. 5. 6. 7. o-oinvm, да ладно, там указано только, что админ может это сделать, но совсем не рассказывают, как его на такое подбить Добрый день! Долго думала, чего я не понимаю в этой жизни. Может правда не понимаю? Конструкцию insert into <таблица> exec <хранимая_процедура> уже отменили? Зачем здесь openrowset? Заодно и отпадет проблема с конфигурацией сервака и битием (подбиванием) админа :)) Объясните мне плииииз )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2019, 14:42 |
|
||
|
как получить список выводимых полей хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Эээммм... да, поторопилась сильно, не подумала. insert into... exec естественно требует предварительного создания таблицы с перечислением полей. Тогда отпадает вообще смысл их определения из системного каталога ))) жаль тут нельзя удалить сообщение ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2019, 14:46 |
|
||
|
|

start [/forum/topic.php?all=1&fid=46&tid=1688066]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
127ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 439ms |

| 0 / 0 |
