我做delphi添加的时候,每次都要写,很麻烦,想写个添加的存储过程,然后每次做添加的时候调用,通用的添加函数,
不知道如何写?如何调用?我刚学delphi,还希望大家帮忙!给段代码!!谢了!!
用adoquery控件做添加!

解决方案 »

  1.   

    CREATE   procedure   add_new(   
      p_id   in   number,   
      p_name   in   varchar2,   
      p_addr   in   varchar2)   
      is   
      begin   
      insert   into   liudzh.liu_table   values(p_id,p_name,p_addr);   
      commit;   
      end;   
        
        
        with   StoredProc1   do   
          for   i   :=   StrToInt(Edit1.text)   to   StrToInt(Edit4.Text)   do   
          try   
              StoredProc1.Params[0].AsInteger   :=   i;   
              StoredProc1.Params[1].AsString   :=   Edit2.Text+IntToStr(i);   
              StoredProc1.Params[2].AsString   :=   Edit3.Text+IntToStr(i);   
              StoredProc1.Prepare;   
              StoredProc1.ExecProc;   
          except   
              ShowMessage('error');   
          end;     
        用adoquery也可以调用   
      如:   
      adoquery1.close   ;   
      adoquery1.sql:=   '{call   procedurename   (vlaues)}';   
      adoquery1.open   ;//有结果集返回   
      adoquery1.execsql   //无结果集返回   对于存储过程的调用使用的控件TADOStoredProc。
    创建方法和连接都很简单。
    StorPro:=TADOStoredProc.Create(nil);
    然后定义存储过程的名字和输入参数:
    StorPro.ProcedureName:=ProName;
    StorPro.Parameters.clear;
    StorPro.Close;
    StorPro.Parameters.CreateParameter('as_gh', ftString, pdInput , 10, NULL);
    StorPro.Parameters.CreateParameter('as_in', ftString, pdInput , 100, NULL);
    StorPro.Parameters.CreateParameter('as_out', ftString, pdOutput , 255, NULL);
    大家可能看到函数CreateParameter中的第3个参数,pdInput 就是用来定义此参数是输入参数函数输出参数。具体的参数函数是:存储过程参数名称、类型、输入输出参数类型、长度还有就是最后一个参数Delphi帮助中说是Value: OleVariant,不过我没有用过。一般我赋值为NULL。
    上面的过程是定义这个存储过程的参数。在调用的时候自然需要给参数赋值。
    赋值过程为(其中WorkID和DataID是事先定义好的两个变量):
    StorPro.Parameters[0].value :=WorkID;
    StorPro.Parameters[1].value :=DataID;
    赋值完成后运行此存储过程:
    StorPro.prepared:=true;
    StorPro.ExecProc;
    好了存储过程调用以后,我们希望得到这次存储过程返回的参数'as_out'的值。
    fxh7622:=StorPro.Parameters.parambyname('as_out').Value;
    这个时候存储过程返回的值就保存在了fxh7622里面。
    其实获得存储过程的返回值比较简单,希望对大家有帮助。
      

  2.   


    添加记录?
    直接生成一个insert values的sql字符串,不就行了
    通用的添加记录的存储过程,还不是一样要指定哪个表、哪些字段和对应的值
      

  3.   

    除非用ORMapping,否则都需要重复地一遍遍写插入语句