|
|
|
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
|
|||
|---|---|---|---|
|
#18+
Есть ХП (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 все понятно - формируешь строку и выполняешь). Подскажите, плз. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2002, 16:28:58 |
|
||
|
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
|
|||
|---|---|---|---|
|
#18+
с TADOStoredProc нет способов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2002, 16:40:06 |
|
||
|
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
|
|||
|---|---|---|---|
|
#18+
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." Остается одно из трех: либо я чего-то неправильно делаю, либо есть другие способы, либо действительно нет способов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2002, 17:00:41 |
|
||
|
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
|
|||
|---|---|---|---|
|
#18+
А как насчет того, что бы выставить в Parameters->Value то значение, которое нужно в качестве значения по умолчанию ? И при активации процедуры в этот параметр ничего не передавать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2002, 17:34:40 |
|
||
|
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
|
|||
|---|---|---|---|
|
#18+
To Предводитель команчей Получается так: поменяешь его в ХП - придется менять его и в клиенте, т.е., перекомпилировать проект. В принципе, можно, но зачем? Какая ж тогда польза от значений по умолчанию в ХП? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2002, 17:58:04 |
|
||
|
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
|
|||
|---|---|---|---|
|
#18+
"Returns a Variant object that can be used for unassigned optional parameters". Это, как я понимаю, то, что в Delphi называется EmptyParam. Так здесь имеются в виду не параметры SP, а параметры по-умолчанию в методах COM-объектов. Т.е. совсем другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2002, 18:04:29 |
|
||
|
Как вызвать ХП с параметрами по умолчанию (MSSQL2000+BCB6)
|
|||
|---|---|---|---|
|
#18+
To Dankov То есть, NoParam() и EmptyParam - это все-таки из другой оперы? Тогда понятно... Просто это было единственное хоть что-то похожее на то, что мне нужно, поэтому грех было не попробовать. Ну, не получилось... :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2002, 18:24:38 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32050208&tid=1820385]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 281ms |

| 0 / 0 |
