str := ADOS.Parameters.ParamByName('@Outstr').Value

解决方案 »

  1.   

    看看:
    http://www.csdn.net/expert/topic/158/158092.shtm
    道理一样的
        //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);  
      

  2.   

    var
      str:string;
    beginsetlength(str,10);      //你要给str分配内存空间.ADOS.Parameters.CreateParamete('@TempMan',ftString,pdinput,20,'XIAOYUAN');
    ADOS.Parameters.CreateParameter('@Outstr',ftString,pdOutput,10,str);////////
    ADOS.ExecProc ;
    showmessage(str);
    end;