2016-10-31 10 views
3

для BDE, мы можем очистить данные параметров, как показано ниже.Delphi - Очистить данные параметра для TADOStoredProc

with tstoredproc do 
    begin 
    . 
    . 
     for i := 0 to ParamCount - 1 do Params[i].Clear; 
    . 
    . 

    end 

как это сделать для ADO Dataset's? Я не хочу создавать параметры. Я использую компонент TADOStoredProc, и он имеет все параметры. Мне просто нужно очистить данные и назначить новые данные.

with TADoStoredProc do 
begin 
. 
. 
for i := 0 to ParamCount - 1 do Parameters[i].Value := null; -- is this right? or can i use below line of code 
Parameters.Refresh 
. 
. 
end; 
+0

@kobik: MySP.Parameters.Clear удаляет все параметры. поэтому система выбрасывает ошибку ошибки не найденной ошибки. – DelphiLearner

ответ

3

BDE TParam.Clear устанавливает Unassigned для элемента данных параметра.

мне просто нужно очистить данные и назначить новые данные

Почему вам необходимо очистить данные/значение в первую очередь? просто назначьте новые значения.

Если вам нужно явно передать null параметру хранимой процедуры, который вы можете использовать, например.

Parameters[i].Value := Unassigned 
+0

есть несколько сценариев, в которых мне нужно снова и снова вызывать один и тот же сохраненный процесс, передавая разные значения. поэтому сначала я хочу сначала установить нулевые значения, а затем назначить значения и открыть набор данных (AdoQuery/ADoStoredProc). – DelphiLearner

+2

@DelphiLearner, который является избыточным. Вам не нужно обнулять параметр, который вы собираетесь присвоить ненулевому значению. –

+0

@RemyLebeau: Я не буду назначать все значения. хранимый proc имеет 8 параметров. в зависимости от условия, которое я собираюсь присвоить значениям параметров. и для каждого вызова он изменяет значения параметров. поэтому перед назначением значений я хочу назначить их NULL. если нет необходимости присваивать значение null в этом сценарии, сообщите мне. я удалю этот код. – DelphiLearner

Смежные вопросы