powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
7 сообщений из 7, страница 1 из 1
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
    #32050172
Kosta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ХП (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
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
    #32050183
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с TADOStoredProc нет способов
...
Рейтинг: 0 / 0
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
    #32050208
Kosta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
    #32050225
Предводитель команчей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как насчет того, что бы выставить в Parameters->Value то значение, которое нужно в качестве значения по умолчанию ? И при активации процедуры в этот параметр ничего не передавать ?
...
Рейтинг: 0 / 0
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
    #32050238
Kosta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Предводитель команчей
Получается так: поменяешь его в ХП - придется менять его и в клиенте, т.е., перекомпилировать проект. В принципе, можно, но зачем? Какая ж тогда польза от значений по умолчанию в ХП?
...
Рейтинг: 0 / 0
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
    #32050239
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Returns a Variant object that can be used for unassigned optional parameters".
Это, как я понимаю, то, что в Delphi называется EmptyParam. Так здесь имеются в виду не параметры SP, а параметры по-умолчанию в методах COM-объектов. Т.е. совсем другое.
...
Рейтинг: 0 / 0
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
    #32050244
Kosta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Dankov
То есть, NoParam() и EmptyParam - это все-таки из другой оперы? Тогда понятно... Просто это было единственное хоть что-то похожее на то, что мне нужно, поэтому грех было не попробовать. Ну, не получилось... :-)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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