Как узнать, какие параметры хранимой процедуры опциональные?
От: gloomy rocker Россия  
Дата: 20.01.03 10:11
Оценка:
Проблема зключается в следующем:
Есть хранимая процедура spSomeProc, у нее есть некоторый набор параметров, некоторые из них имеют значения по умолчанию. Как определить, какие из параметров имеют значения по умолчанию?
Пробовал так:
sp_sproc_columns 'spSomeProc'

но интересующее меня поле COLUMN_DEF всегда содержит NULL
Как быть? Может надо свой парсер текста хранимой процедуры писать?
... << RSDN@Home 1.0 beta 4 >>
Скука — двигатель прогресса.
Re: Как узнать, какие параметры хранимой процедуры опциональ
От: Willi Интернет  
Дата: 20.01.03 12:02
Оценка: 2 (1)
Здравствуйте, gloomy rocker, Вы писали:

GR>Проблема зключается в следующем:

GR>Есть хранимая процедура spSomeProc, у нее есть некоторый набор параметров, некоторые из них имеют значения по умолчанию. Как определить, какие из параметров имеют значения по умолчанию?

Может быть попробовать через ADOX
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/admscprocedureparameterexample.asp
__________________________________
Василий Черневич (aka Willi)
Re: Как узнать, какие параметры хранимой процедуры опциональ
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.01.03 12:30
Оценка: 2 (1)
Здравствуйте, gloomy rocker, Вы писали:

В MS SQL 7.0 вообще не хранится информации о дефолтных значениях параметров процедуры.
Точнее, я ее не нашел.
Поэтому прокладками можно пользоваться любыми — толку будет нуль.
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Как узнать, какие параметры хранимой процедуры опцион
От: gloomy rocker Россия  
Дата: 20.01.03 12:35
Оценка:
Здравствуйте, Willi, Вы писали:

W>Может быть попробовать через ADOX

W>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/admscprocedureparameterexample.asp

Похоже, что так не получится. В итоге я получаю объект Command, через который вытаскиваю коллекцию параметров. Проблема в том, что через ADODB.Parameter я не могу получить информацию о значении по умолчанию для этого параметнра. Мне нужно хотябы вычислить наличие этого default-а, но и этого я не могу сделать. У объекта ADODB.Parameter есть атрибуты, но и это тоже ничего не дает:

ParameterAttributesEnum
Specifies the attributes of a Parameter object.

adParamSigned 16 Indicates that the parameter accepts signed values. 
adParamNullable 64 Indicates that the parameter accepts null values. 
adParamLong 128 Indicates that the parameter accepts long binary data.


adParamNullable — ничего не дает
... << RSDN@Home 1.0 beta 4 >>
Скука — двигатель прогресса.
Re[2]: Как узнать, какие параметры хранимой процедуры опцион
От: gloomy rocker Россия  
Дата: 20.01.03 12:38
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>В MS SQL 7.0 вообще не хранится информации о дефолтных значениях параметров процедуры.

S>Точнее, я ее не нашел.
S>Поэтому прокладками можно пользоваться любыми — толку будет нуль.

У меня SQL Server 2000. Может в нем что-нить подобное хранится?
Или нужно писать парсер хранимой процедуры, который будет возвращать информацию о ее параметрах?
... << RSDN@Home 1.0 beta 4 >>
Скука — двигатель прогресса.
Re[3]: Как узнать, какие параметры хранимой процедуры опцион
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.01.03 13:25
Оценка:
Здравствуйте, gloomy rocker, Вы писали:

GR>У меня SQL Server 2000. Может в нем что-нить подобное хранится?

Увы, у меня его нет. Попробуй посмотреть в текст процедуры master.dbo.sp_help и понять, из каких таблиц она вытаскивает параметры процедур. Потом залезть в эти таблицы руками и убедиться, есть ли там то что надо. (В смысле поиграться значениями по умолчанию в тексте процедуры, и посмотреть, что при этом меняется в системных таблицах).

Также глянь, показывает ли эту инфу ихний новый модный квери анализер. Если показывает — то профайлер в левую руку, мышку в правую — и ловить команды. Успехов!

GR>Или нужно писать парсер хранимой процедуры, который будет возвращать информацию о ее параметрах?

В крайнем случае, увы, так и придется сделать.
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Как узнать, какие параметры хранимой процедуры опциональ
От: Max_rv  
Дата: 20.01.03 14:27
Оценка: 32 (2)
Здравствуйте, gloomy rocker, Вы писали:

GR>Проблема зключается в следующем:

GR>Есть хранимая процедура spSomeProc, у нее есть некоторый набор параметров, некоторые из них имеют значения по умолчанию. Как определить, какие из параметров имеют значения по умолчанию?
GR>Пробовал так:
GR>
GR>sp_sproc_columns 'spSomeProc'
GR>

GR>но интересующее меня поле COLUMN_DEF всегда содержит NULL
GR>Как быть? Может надо свой парсер текста хранимой процедуры писать?


Может это поможет:

select * from information_schema.routines

select * from information_schema.routine_columns
Re[2]: Как узнать, какие параметры хранимой процедуры опцион
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.01.03 14:53
Оценка:
Здравствуйте, Max_rv, Вы писали:
MR>Может это поможет:
MR>select * from information_schema.routines
MR>select * from information_schema.routine_columns
А как Вы думаете, такие таблицы есть во всех СУБД? Например, на MS SQL 2000, который стоит у глуми рокера?
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Как узнать, какие параметры хранимой процедуры опцион
От: Max_rv  
Дата: 21.01.03 11:43
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Max_rv, Вы писали:

MR>>Может это поможет:
MR>>select * from information_schema.routines
MR>>select * from information_schema.routine_columns
S>А как Вы думаете, такие таблицы есть во всех СУБД? Например, на MS SQL 2000, который стоит у глуми рокера?

S>

разумеется не на всех (но на 2000 точно
Re[3]: Как узнать, какие параметры хранимой процедуры опцион
От: Alexey Shirshov Россия http://wise-orm.com
Дата: 21.01.03 20:45
Оценка: 30 (1)
Здравствуйте, Sinclair, Вы писали:

хъ

S>А как Вы думаете, такие таблицы есть во всех СУБД? Например, на MS SQL 2000, который стоит у глуми рокера?


information_schema имеется в стандарте SQL еще от 92 года.
... << RSDN@Home 1.0 beta 5 >>
Re[3]: Как узнать, какие параметры хранимой процедуры опцион
От: gloomy rocker Россия  
Дата: 22.01.03 07:27
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>А как Вы думаете, такие таблицы есть во всех СУБД? Например, на MS SQL 2000, который стоит у глуми рокера?


Такие таблицы в SQL Server 2000 есть, но к сожалению проблему это не решает
... << RSDN@Home 1.0 beta 4 >>
Скука — двигатель прогресса.
Re[2]: Как узнать, какие параметры хранимой процедуры опцион
От: gloomy rocker Россия  
Дата: 22.01.03 07:31
Оценка:
Здравствуйте, Max_rv, Вы писали:

MR>Может это поможет:

MR>select * from information_schema.routines
MR>select * from information_schema.routine_columns

Спасибо, но это не помогло. Мне начинает казаться, что SQL Server 2000 вообще не хранит информацию о значениях по умолчанию.
... << RSDN@Home 1.0 beta 4 >>
Скука — двигатель прогресса.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.