Проблема зключается в следующем:
Есть хранимая процедура spSomeProc, у нее есть некоторый набор параметров, некоторые из них имеют значения по умолчанию. Как определить, какие из параметров имеют значения по умолчанию?
Пробовал так:
sp_sproc_columns 'spSomeProc'
но интересующее меня поле COLUMN_DEF всегда содержит NULL
Как быть? Может надо свой парсер текста хранимой процедуры писать?
... << RSDN@Home 1.0 beta 4 >>
Скука — двигатель прогресса.
Re: Как узнать, какие параметры хранимой процедуры опциональ
Здравствуйте, gloomy rocker, Вы писали:
GR>Проблема зключается в следующем: GR>Есть хранимая процедура spSomeProc, у нее есть некоторый набор параметров, некоторые из них имеют значения по умолчанию. Как определить, какие из параметров имеют значения по умолчанию?
В MS SQL 7.0 вообще не хранится информации о дефолтных значениях параметров процедуры.
Точнее, я ее не нашел.
Поэтому прокладками можно пользоваться любыми — толку будет нуль.
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Как узнать, какие параметры хранимой процедуры опцион
Похоже, что так не получится. В итоге я получаю объект 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]: Как узнать, какие параметры хранимой процедуры опцион
Здравствуйте, Sinclair, Вы писали:
S>В MS SQL 7.0 вообще не хранится информации о дефолтных значениях параметров процедуры. S>Точнее, я ее не нашел. S>Поэтому прокладками можно пользоваться любыми — толку будет нуль.
У меня SQL Server 2000. Может в нем что-нить подобное хранится?
Или нужно писать парсер хранимой процедуры, который будет возвращать информацию о ее параметрах?
... << RSDN@Home 1.0 beta 4 >>
Скука — двигатель прогресса.
Re[3]: Как узнать, какие параметры хранимой процедуры опцион
Здравствуйте, gloomy rocker, Вы писали:
GR>У меня SQL Server 2000. Может в нем что-нить подобное хранится?
Увы, у меня его нет. Попробуй посмотреть в текст процедуры master.dbo.sp_help и понять, из каких таблиц она вытаскивает параметры процедур. Потом залезть в эти таблицы руками и убедиться, есть ли там то что надо. (В смысле поиграться значениями по умолчанию в тексте процедуры, и посмотреть, что при этом меняется в системных таблицах).
Также глянь, показывает ли эту инфу ихний новый модный квери анализер. Если показывает — то профайлер в левую руку, мышку в правую — и ловить команды. Успехов!
GR>Или нужно писать парсер хранимой процедуры, который будет возвращать информацию о ее параметрах?
В крайнем случае, увы, так и придется сделать.
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Как узнать, какие параметры хранимой процедуры опциональ
Здравствуйте, 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]: Как узнать, какие параметры хранимой процедуры опцион
Здравствуйте, 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]: Как узнать, какие параметры хранимой процедуры опцион
Здравствуйте, 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]: Как узнать, какие параметры хранимой процедуры опцион
Здравствуйте, Max_rv, Вы писали:
MR>Может это поможет: MR>select * from information_schema.routines MR>select * from information_schema.routine_columns
Спасибо, но это не помогло. Мне начинает казаться, что SQL Server 2000 вообще не хранит информацию о значениях по умолчанию.