Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6) / 7 сообщений из 7, страница 1 из 1
12.09.2002, 16:28:58
    #32050172
Kosta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
Есть ХП (MSSQL 2000) с параметрами, причем некоторые из них имеют значения по умолчанию. Например, вот так:
CREATE PROCEDURE spTest (@P1 int = 0, @P2 int) AS ...
И есть клиент (CBuilder 6), который эту ХП вызывает посредством TADOStoredProc таким образом:
sp->Parameters->ParamValues["@P1"] = Value1;
sp->Parameters->ParamValues["@P2"] = Value2;
sp->ExecProc();
Если явно задавать значения параметров, то вопросов не возникает. А что нужно задать первому параметру, чтобы ХП взяла в качестве него значение по умолчанию (т.е. ноль в данном случае)?
Т.е., в Query Analyzer'e в таком случае можно подставить DEFAULT таким образом:
EXEC spTest DEFAULT, 123
А как это же сделать в Builder'е и именно с использованием TADOStoredProc->Parameters? (Потому что с TADOCommand все понятно - формируешь строку и выполняешь).
Подскажите, плз. Заранее благодарен.
...
Рейтинг: 0 / 0
12.09.2002, 16:40:06
    #32050183
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
с TADOStoredProc нет способов
...
Рейтинг: 0 / 0
12.09.2002, 17:00:41
    #32050208
Kosta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
To Dankov
А вот меня, мучают сомнения по этому поводу. Сейчас объясню, почему. Есть в билдеровском Help'е такая штука, как Variant::NoParam(), которая "Returns a Variant object that can be used for unassigned optional parameters". Так вот про нее написано следующее:
"When marshaling interface calls that include optional parameters, COM still requires a value for those parameters even when they are not used. Use the Variant returned by NoParam as that value to indicate that the parameter is not used."
Но когда пробую сделать так: sp->Parameters->ParamValues["@P1"] = Variant::NoParam(), то при выполнении этой строки получаю ошибку "Arguments are of the wrong type, are out of the acceptable range or are in conflict with one another." Остается одно из трех: либо я чего-то неправильно делаю, либо есть другие способы, либо действительно нет способов.
...
Рейтинг: 0 / 0
12.09.2002, 17:34:40
    #32050225
Предводитель команчей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
А как насчет того, что бы выставить в Parameters->Value то значение, которое нужно в качестве значения по умолчанию ? И при активации процедуры в этот параметр ничего не передавать ?
...
Рейтинг: 0 / 0
12.09.2002, 17:58:04
    #32050238
Kosta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
To Предводитель команчей
Получается так: поменяешь его в ХП - придется менять его и в клиенте, т.е., перекомпилировать проект. В принципе, можно, но зачем? Какая ж тогда польза от значений по умолчанию в ХП?
...
Рейтинг: 0 / 0
12.09.2002, 18:04:29
    #32050239
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
"Returns a Variant object that can be used for unassigned optional parameters".
Это, как я понимаю, то, что в Delphi называется EmptyParam. Так здесь имеются в виду не параметры SP, а параметры по-умолчанию в методах COM-объектов. Т.е. совсем другое.
...
Рейтинг: 0 / 0
12.09.2002, 18:24:38
    #32050244
Kosta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
To Dankov
То есть, NoParam() и EmptyParam - это все-таки из другой оперы? Тогда понятно... Просто это было единственное хоть что-то похожее на то, что мне нужно, поэтому грех было не попробовать. Ну, не получилось... :-)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6) / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]