在用ADOStoredProc的時候,參數除了用數組的形式,還有其它方法引用參數嗎?
例如:我們可以這樣來增加參數,
  ADOStoredProc.Parameters.Add;
  ADOStoredProc.Parameters[3].DataType:=ftString;
  ADOStoredProc.Parameters[3].Direction :=pdInput;
  ADOStoredProc.Parameters[3].Name:='@ClassID';
  ADOStoredProc.Parameters[3].Size :=11;
  ADOStoredProc.Parameters[3].Value:=trim(Edit1.Text);
但我想當 Eidt1.Text = '' 的時候不添加這個參數。
但這樣的話,ADOStoredProc.Parameters這個數組便沒有增加,其後面的參數表示就是ADOStoredProc.Parameters[3]
如果 Edit1.Text <> ''  則 ADOStoredProc.Parameters數組加1,其後面的參數表示就是ADOStoredProc.Parameters[4]
當然,如果參數隻有一兩個,用if 語名就可以解決了,但參數多的話,如何是好呢?
敬請高手賜教其解法。

解决方案 »

  1.   

    data.asp_common.ProcedureName:='savechange';
          data.asp_common.Parameters.Refresh;//这样就可以了
          data.asp_common.Parameters[1].Value :=username;
          data.asp_common.Parameters[2].Value :=ls_str;
          data.asp_common.ExecProc;
          ls_str:=data.asp_common.Parameters[1].value
      

  2.   

    ADOStoredProc1.Parameters.CreateParameter( 、、、 )
    ()中是参数信息
    用法看帮助,是创建一个参数,就怎么OK!
    ---------------------------
                     落魄文士穷书生
      

  3.   

    用Parameters.CreateParameter就好了,但是,如果要得到返回值,就要用exec方法
      

  4.   

    data.asp_common.ParamByName("name1").Value:=XXXX;
    .....
      

  5.   

    一般用Parameters.CreateParameter創建參數,但用open方法執行時,有時會出錯,用exec就不會出錯了