要有返回参数的

解决方案 »

  1.   

    with ADOStoredProc1 do begin
           close;
           procedurename:='ds_crelossalltab';
           parameters.Clear;
           parameters.CreateParameter('ftime',ftstring,pdinput,10,null);
           parameters.CreateParameter('ltime',ftstring,pdinput,10,null);
           parameters.CreateParameter('lossdept',ftstring,pdoutput,15,null);//pdoutput
           parameters.Items[0].Name :='@ftime';
           parameters.Items[1].Name :='@ltime';
           parameters.Items[2].Name :='@lossdept';
           parameters[0].Value :=datetostr(dtp1.date);
           parameters[1].Value :=datetostr(dtp2.date);
           execproc;
           showmessage(parameters[2].Value);  //返回的参数
        end;
      

  2.   

    qry.Close;
      qry.SQL.Clear;
      qry.SQL.Add('Begin');
      qry.SQL.Add('EXP_FROM_UNIX_GJ(:gsdw,:readdate,:retint,:retmsg);');//注意要有分号
      Qry.SQL.Add('End;');//同上
      qry.Parameters[0].Value := gsdw;
      qry.Parameters[1].Value := readate;
      qry.Parameters[2].Direction := pdOutput;//后面为输出参数
      qry.Parameters[3].Direction := pdOutput;
      qry.Parameters[2].Value := '####';
      qry.Parameters[3].Value := '####';
      qry.Prepared;
      qry.ExecSQL;
      

  3.   

    errmsg := errmsg+#13+qry.Parameters[3].Value;
    返回值
      

  4.   

    with Login_SP do
         begin
            Close;
            ProcedureName:='Exitsts_User;1';
            Parameters.Clear;
            parameters.Refresh;
            Parameters.ParamByName('@UName').Value:=LogN_Box.Text;
            LogIner:=Logn_box.Text;
            Parameters.ParamByName('@UPSW').Value:=LogP_EDIT.Text;
            LogInPW:=LogP_EDIT.Text;
            ReTag:=Parameters.ParamByName('@Return').Value:=0;
            Prepared:=true;
            ExecProc;
            showmessage(booltostr(ReTag);
          end;
      

  5.   

    错了,应是:
        with Login_SP do
         begin
            Close;
            ProcedureName:='Exits_user;1';
            Parameters.Clear;
            parameters.Refresh;
            Parameters.ParamByName('@UName').Value:=LogN_Box.Text;
            LogIner:=Logn_box.Text;
            Parameters.ParamByName('@UPSW').Value:=LogP_EDIT.Text;
            LogInPW:=LogP_EDIT.Text;
            Parameters.ParamByName('@Return').Value:=0;
            Prepared:=true;
            ExecProc;       
            showmessage(Booltostr(parameters.parambyname('@return').value));
     end;