数据库名 cSharp   表明  region   字段  RegionId    int     RegionDes  nchar
存储过程
各位大虾,你们好,我想问一下在delphi中,通过Adoquery怎样来写这段保存代码
小弟先谢谢了CREATE PROCEDURE RegionInsert
                     (@RegionDes  Nchar(50),
                     @RegionId INteger  output
                            )
                      AS   set Nocount off;
                     select  @RegionId=max(RegionID)+1
                     From Region;
                    Insert into Region(RegionId,RegionDes)
                   values(@RegionId,@RegionDes);
GO

解决方案 »

  1.   

    with GetAADOStoredProc('Sp_GetSeriesID') do // 創建ADOStoredProc, 並設置存儲過程名
      try
        Parameters.CreateParameter('@PIDFieldName', ftWideString, pdInput, 20, aIDFieldName);
        Parameters.CreateParameter('@PMaxID', ftWideString, pdInputOutput, 10, ''); // 輸出參數
        ExecProc;
        Result := Parameters.ParamByName('@PMaxID').Value;
      finally
        Free;
      end;
      

  2.   

    Adoquery.sql.add('exec RegionInsert :RegionDes,:RegionId_INteger output');
    Adoquery.Parameters.ParamByName('RegionDes').Value;   //输入参数.
    Adoquery.Open;if Adoquery.recoredCount>0 then
      Adoquery.Parameters.ParamByName('RegionId_INteger').Value;   //输出参数.
      

  3.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
      i : Integer;
    begin
      with ADOStoredProc1 do
      begin
        Close;
        ProcedureName = 'RegionInsert';
        Parameters.ParamByName('RegionDes').Value = '输入值';
        ExecProc;
        i := Parameters.parambyname('RegionId_INteger').Value ;
      end;
    end;
      

  4.   

    几位老兄,我按照上面的怎么不行 啊
    着是我的代码
    CREATE PROCEDURE RegionInsert
                         (@RegionDes  Nchar(50),
                         @RegionId INteger  output
                                )
                          AS   set Nocount off;
                       /*  select  @RegionId=max(RegionID)+1  From Region;*/
                     select @RegionId = isnull(max(RegionID)+1,count(*)+1) From Region;
                        Insert into Region(RegionId,RegionDes)
                       values(@RegionId,@RegionDes);
    GO//
    with AdoPro do
      begin
      close;
       AdoPro.ProcedureName:='RegionInsert';
       Parameters.ParamByName('RegionDes').Value:=edit1.Text;
       ExecProc;
      end;
    end;
    为什么不能保存记录