Прошу помочь с таким вопросом:
есть база с хранимыми процедурами. У некоторых хранимых процедур есть по несколько параметров со значениями по умолчанию. Например:
procedure MyProc
@param1 int = 0,
@param2 int = -1,
@param3 varchar(50) = ""
AS
...
return 0
GO;
Есть программа на делфи 7 в которой для вызова хранимых процедур используются компоненты TMSConnection TMSStoredProc. При вызове хранимой процедуры программа передает не все параметры, например только @param1, для примера выше (предполагается что остальные параметры будут иметь значения по умолчанию). Но когда хранимая процедура выполняется, в не незаданных параметрах оказываются значения null (вместо дефолтных). Можно ли настроить компоненты чтобы работало как мне надо ?
Вызов хранимой процедуры с параметрами по умолчанию
Re: Вызов хранимой процедуры с параметрами по умолчанию
Чтобы при вызове хранимой процедуры параметру передавалось не null значение, а default, установите свойство TParam.Bound этому параметру в False. Например, это можно делать в цикле:
Код: Выделить всё
MSStoredProc.StoredProcName := 'MyProc';
MSStoredProc.ParamByName('param1').Value := Value;
for i := 0 to MSStoredProc.ParamCount - 1 do
if MSStoredProc.Params[i].IsNull then
MSStoredProc.Params[i].Bound := False;
MSStoredProc.ExecProc;
Re: Вызов хранимой процедуры с параметрами по умолчанию
спасибо! кажется то что надо