这个函数的Update语句怎么写呢? 要考虑等对 a表操作时的字段数
对b表操作时的字段数、 对c表操作时的字段数??

解决方案 »

  1.   

    result:=false;
    try
      with query1,SQL do begin
        Clear;
        Add(' insert into a values(g1,g2)');
        ExecSQl;
        Clear;
        Add(' insert into b values(g3,g4,g5)');
        ExecSQl;
        Clear;
        Add(' insert into c values(g6,g7,g8,g9,g10)');
        Execsql;
      end;
      result:= True;
    except
      raise;
    end;
    是这样吗? 
      

  2.   

    Function FF(g1,g2,g3,...g11:string;Flag:Boolean):Boolean;
      其中g1-g11,为你表的字段名,Flag为添加或修改的标识
      

  3.   

    g11设成boolean;
    if g11 then
      insert
    else update;
      

  4.   

    对不起! 我好像没有说清楚的g1到g11是数据表中字段最多的,不是每个表的字段总和
    而且插入或修改的时候不是针对多个表而是一个表,决定表的内容是由给出的字段决定
    的例如:
    function ff(g1,g2,g3,g4,g5,g6,g7,g8,g9,g10,g11 : String) : Boolean;
    begin
     //添加
      Close;
      SQL.Clear;
      SQL.Add('Insert into table(''g1'',''g2''') values(''ss'',''dd'')');
      ExcSQL;
      但是这只是 A表中的字段,如果换成B表的字段该怎么办呢? 总不能再写一条Insert吧! 那我这个函数还有什么用呢? 修改也是这个道理的?
    end;
      

  5.   

    有必要用11个参数吗,可以参考以下两种方案
    1、function(flag, struct)
    flag用于指定要进行的操作类别,struct为用存储的结构2、function(strunct);
       function(strunct1);overload;
    重载这样至少在结构上很清晰,维护起来方便