RO之取存储过程返回值(In、Out参数)
{ 要引用的单元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;