a:用程序更新
b:使用存储过程
c:使用触发器

解决方案 »

  1.   

    1、设置TQuery.CachedUpdates为true,更新记录时使用ApplyUpdates而不是Post
    2、写:
    procedure TForm1.Query1UpdateRecord(DataSet: TDataSet;
      UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
    begin
      Query1.UpdateObject := UpdateSQL1;
      //UpdateSQL1中写对应的SQL语句,更新单个表,有多个表就多次更新,
      //或者放置多个TUpdateSQL
      //最后设置:
      UpdateAction := true;
    end;
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '可用分不够可以给我发短消息';
    I.Desire := '加不加分随你';
    —————————————————————————————————
      

  2.   

    上面UpdateAction := true;应该是UpdateAction := uaApplied —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '可用分不够可以给我发短消息';
    I.Desire := '加不加分随你';
    —————————————————————————————————
        
      

  3.   

    上面UpdateAction := true;应该是UpdateAction := uaApplied —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '可用分不够可以给我发短消息';
    I.Desire := '加不加分随你';
    —————————————————————————————————
        
      

  4.   

    用sql增加表的连接,或者用数据模块,主从表来控制数据的更新~
      

  5.   

    to lxpbuaa(桂枝香在故国晚秋) 
    它不是有 UpdateKind属性吗,要设置吗
      

  6.   

    昨天我用updateSql可是它只能添加修改或删除一次,第二次就不可以了是什么原因啊?
    代码如下:
    StrSql := 'select rkdh,wz_instock_detail.wzbm wzbm,wz_code.wzmc wzmc,amount,wz_instock_detail.dwdm dwdm'
              + ',wz_instock_detail.bz bz,price,sum from wz_instock_detail,wz_code'
              + ' where wz_instock_detail.dwdm = wz_code.dwdm and wz_instock_detail.wzbm = wz_code.wzbm'
              + ' and  wz_instock_detail.dwdm = :dm'
              + ' and wz_instock_detail.rkdh = :v_rkdh';
              
      with qry_instock_detail do
        begin
          close;
          sql.clear;
          sql.add(strsql);
          params[0].asstring:=gs_dwdm;
          params[1].asstring:=love;
          open;
        end;qry_instock_detail 是将两个表关连起来的一个表,现在要求将得到的数据更新到表wz_instock_detail中
      

  7.   

    to lxpbuaa(桂枝香在故国晚秋) 
    安你的方法已经不报错了,不过数据却是没有添加进去,为什么呢
      

  8.   

    例子:
    procedure TForm1.Query1UpdateRecord(DataSet: TDataSet;
      UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
    begin
      Query1.UpdateObject := UpdateSQL1;
      UpdateSQL1.ModifySQL.Text := 'update employee.db set LastName=:LastName where EmpNo=:OLD_EmpNo';
      UpdateSQL1.SetParams(UpdateKind);
      UpdateSQL1.Apply(UpdateKind);
      UpdateAction := uaApplied;
      Table1.Refresh;
    end;
    //Query1: select EmpNo, LastName,Event_Name from employee.db,events.db where EmpNo=EventNo
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '可用分不够可以给我发短消息';
    I.Desire := '加不加分随你';
    —————————————————————————————————
      

  9.   

    例子:
    procedure TForm1.Query1UpdateRecord(DataSet: TDataSet;
      UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
    begin
      Query1.UpdateObject := UpdateSQL1;
      UpdateSQL1.ModifySQL.Text := 'update employee.db set LastName=:LastName where EmpNo=:OLD_EmpNo';
      UpdateSQL1.SetParams(UpdateKind);
      UpdateSQL1.Apply(UpdateKind);
      UpdateAction := uaApplied;
      Table1.Refresh;
    end;
    //Query1: select EmpNo, LastName,Event_Name from employee.db,events.db where EmpNo=EventNo
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '可用分不够可以给我发短消息';
    I.Desire := '加不加分随你';
    —————————————————————————————————