在一个窗体中,用以下事件构成了一主/从表TableMaster/TableDetail:
procedure TDataMod.TableMasterAfterScroll(DataSet: TDataSet);
begin
TableDetail.DisableControls;
TableDetail.filtered:=false;
TableDetail.filter:='KHMC='+QuotedStr(TableMasterkhmc.Value) ;
TableDetail.filtered:=true;
TableDetail.EnableControls ;
end; 在另一窗体中能给从表TableDetail添加、修改数据。问题是当浏览完主/从表后,在从表窗体的DBGrid中只显示一部分记录,少了一些,想添加数据,总出错,错误提示:“Key violation”。注:主、从表都有各自的流水编号做主键!
不知我的问题说清楚了没,我很菜的菜鸟!
procedure TDataMod.TableMasterAfterScroll(DataSet: TDataSet);
begin
TableDetail.DisableControls;
TableDetail.filtered:=false;
TableDetail.filter:='KHMC='+QuotedStr(TableMasterkhmc.Value) ;
TableDetail.filtered:=true;
TableDetail.EnableControls ;
end; 在另一窗体中能给从表TableDetail添加、修改数据。问题是当浏览完主/从表后,在从表窗体的DBGrid中只显示一部分记录,少了一些,想添加数据,总出错,错误提示:“Key violation”。注:主、从表都有各自的流水编号做主键!
不知我的问题说清楚了没,我很菜的菜鸟!
不过一般提示key violation是因为主建被赋值为空;
你是不是先添加了一条空记录然后再给各个字段赋值的?