众位大侠帮帮忙吧我使用的是delphi 和 paradox数据库有两个表主从表结构   在从表中插入数据时如果插入两行没有任何问题,如果插入两行后再插入第三行的时候总提示:key violation 提示,是提示的主键重复,可是根据我的程序的循环是不会出现关键字重复的主表的关键字是:fplx,fpdm,fphm  从表的关键字是 fplx,fpdm,fphm,fpxh代码如下:
body.First ;
          while not body.Eof do begin
            if body.RecNo = 1 then begin
              gdsfpmx.First ;
            end else begin
              gdsfpmx.Append;
            end;
            
            gdsfpmx.Edit;
gdsfpmx.FindField('fplx').Value     := 's'
            gdsfpmx.FindField('fpdm').Value       := fpdm;
            gdsfpmx.FindField('fphm').Value       := fphm;
            iIdx := iIdx + 10;
            gdsfpmx.FindField('fpxh').Value   := iIdx;
            
            try
              gdsfpmx.FindField('spbh').Value       := 'ZAQXSW';
            except
              on e:Exception do
                log('商品编号:' + e.Message);
            end;            GetGoodsCode('ZAQXSW',spmch,spggxh,spjldw,spslv,spdj,false);            gdsfpmx.FindField('spmc').AsString    := 'ZAQXSW';
            gdsfpmx.FindField('sl').Value         := spsl;
            gdsfpmx.FindField('je').AsFloat         := spje;
            gdsfpmx.FindField('slv').Value           := spslv;
            gdsfpmx.FindField('djbh').AsString  := xsdjbh;
            gdsfpmx.FindField('djmxxh').AsInteger  := djmxxh;
            body.Next;
          end;