众位大侠帮帮忙吧我使用的是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;
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;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货