用fetch params 重新获取参数

解决方案 »

  1.   

    我是用的fetch params ,参数有三个 0 @returnvalue 1 @a  2@b
    其中a是传入b是传出,clientdateset.close;
    clientdateset.commandtext:='';
    clientdateset.params[1].value:='1';
    clientdateset.open;
    edit4.text:=clientdateset.params[2].value错误依然
      

  2.   

    commandtext都为空了,那里还有参数呢?
      

  3.   

    服务器端的存储过程得到参数不就行了,那你说commandtext该填什么
      

  4.   

    clientdateset.commandtext:='';//去掉
      

  5.   

         //delphi 5测试通过CREATE PROCEDURE sp_tmp       @a  int,
          @b  varchar(20) output
    as     select @b = 'hello';var
       str :string;
    begin
                     //关键################################################
        SetLength(str,20); //初石化,字符串内存空间,为DataSetProvider1......    clientdataset1.Params.Clear;
        clientdataset1.Params.CreateParam(ftInteger,'@a', ptInput);
        clientdataset1.Params.ParamByName('@a').AsInteger := 123;
        clientdataset1.Params.CreateParam(ftString,'@b', ptOutput);
        clientdataset1.Params.ParamByName('@b').asstring :=  str;    clientdataset1.Execute;    showmessage(clientdataset1.Params.FindParam('@b').AsString);
      

  6.   

    我怎么用不好?CREATE PROCEDURE ooo @a varchar(13)  ,@c float(16), @b varchar(13) output AS select @b='123123'
    ///存储过程调用
    procedure TForm1.Button1Click(Sender: TObject);
    var
    str:string;
    begin
    setlength(str,20);
    proc.Params.clear;
     proc.Params.CreateParam(ftstring,'@a',ptinput);
     proc.Params.ParamByName('@a').asstring:='23';  proc.Params.CreateParam(ftfloat,'@c',ptinput);
      proc.Params.ParamByName('@c').asfloat:=123;  proc.Params.CreateParam(ftstring,'@b',ptoutput);
      proc.Params.ParamByName('@b').asstring:=str;
       edit1.text:=proc.Params.findparam('@b').asstring;
    end;
      

  7.   

    还有一句proc.execute在edit1.text:=前边