主表Person(Id,sex,name,age) 其中id是主键索引,自动增加
从表MyCent(Id,content)其中MyCent.Id=Person.Id的外键,MyCent.Id是Int,没有索引。如何在添加一条Person记录的同时也添加一条记录MyCent呢?

解决方案 »

  1.   

    1.开事务,保证数据完整性
    begin
      try
      adoconnection1.begintrans;
      with adoquery1 do
      begin
        插入主表
      end
      with adoquery2 do
      begin
        插入从表
      end  
      adoconnection1.committrans;
      except
      adoconnection1.rollbacktrans;
      end
    end;
      

  2.   

    我的客户端是用socketconnection连接的,没有begintrans;况且用qizhanfeng的方法,能把MyCen.ID添加的跟Person.ID一致吗?
      

  3.   

    那就在中间层的远程事务模块里开事务
    var
      MTSMD:TMTSDataModule;
    .
    .
    .
    begin
      try
      with adoquery1 do
      begin
        插入主表
      end
      with adoquery2 do
      begin
        插入从表
      end  
      commit;
      except
      Abort;
      end
    end;
    大概就是这样子了