{
要引用的单元uRODynamicRequest, uROClasses, uRODL
}
var
lParam:TRORequestParam;
lArray:DataParameterArray;
aParam:DataParameter;
begin
with DARemoteCommand1.ExecuteCall do
begin
MethodName := 'ExecuteCommandEx';
Params.Clear();
OutgoingCommandNameParameter := Params.Add('aCommandName', rtString, fIn).Name;
OutgoingParametersParameter := Params.Add('aOutgoingParameterArray', rtUserDefined, fIn, 'DataParameterArray').Name;
IncomingParametersParameter := Params.Add('aIncomingParameterArray', rtUserDefined, fOut, 'DataParameterArray').Name;
IncomingAffectedRowsParameter := Params.Add('Result', rtInteger, fResult).Name;
ParamByName(OutgoingCommandNameParameter).Value := '存储过程名';
//上面部分,除了存储过程名要写上外,其它的都不用修改
lArray := DataParameterArray.Create();
aParam := lArray.Add();
aParam.Name := '传入参数名称';
aParam.Value := '传入参数值';
aParam := lArray.Add();
aParam.Name := '传出参数名称';
aParam.Value := '传出参数值(不用写)';
lParam := Params.FindParam(OutgoingParametersParameter);
lParam.AsComplexType := lArray;
lParam.OwnsComplexType := true;
Execute();
lParam := Params.FindParam(IncomingParametersParameter);
lArray := DataParameterArray(lParam.AsComplexType);
ShowMessage(lArray[1].Value);//lArray[0]-返回值 lArray[1]-传出参数值
end;
end;