把@符号去掉试试!
ADOSPNewCustomID.Parameters.ParamByName('NewID').value:='';
  ADOSPNewCustomID.ExecProc;
  edtID.text:= ADOSPNewCustomID.Parameters.Parambyname('@NewID').value;
  ADOSPNewCustomID.Refresh;
  

解决方案 »

  1.   

    把@符号去掉试试!
    ADOSPNewCustomID.Parameters.ParamByName('NewID').value:='';
      ADOSPNewCustomID.ExecProc;
      edtID.text:= ADOSPNewCustomID.Parameters.Parambyname('NewID').value;
      ADOSPNewCustomID.Refresh;
      
      

  2.   

      try
        with myStoredProc do
        begin
          ProcedureName := 'proc_生成用户编号';
          Parameters.Clear;
          Parameters.AddParameter;
          Parameters[0].Name := 'Return';
          Parameters[0].Direction := pdReturnValue;
          Parameters[0].DataType := ftInteger;      Parameters.AddParameter;
          Parameters[1].Name := '@NewID';
          Parameters[1].Direction := pdInputOutput;
          Parameters[1].DataType := ftString;
          Parameters[1].Size := 6;      ExecProc;
          if Parameters[0].Value=0 then
          begin
            Edit1.Text := Parameters[1].Value;
          end;
        end;
      Except
        On E:EADOError do
        begin
          Application.MessageBox(Pchar('由于以下原因,操作失败:'+E.message),'出错',mb_OK+Mb_IconError);
          Exit;
        end;
      end;
      

  3.   

    把ADOSPNewCustomID.Parameters.ParamByName('@NewID').value:='';去掉试试。
      

  4.   

    我原来也遇见过,每次执行要清空参数
    Parameters.Clear;