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”。注:主、从表都有各自的流水编号做主键!
不知我的问题说清楚了没,我很菜的菜鸟!
5 个解决方案
#1
不太清楚具体什么原因;
不过一般提示key violation是因为主建被赋值为空;
你是不是先添加了一条空记录然后再给各个字段赋值的?
不过一般提示key violation是因为主建被赋值为空;
你是不是先添加了一条空记录然后再给各个字段赋值的?
#2
从表添家数据是基于主表已经有的主键的!
#3
我在另一个窗体打开从表时,从表的记录只显示上一次打开主/从表时,从表中与主表关联的部分,可我想在新窗体中显示从表的全部内容!断开数据库,再联上也只显示那一少部分?
怎么办.高手说一句就行!!!
怎么办.高手说一句就行!!!
#4
自己解决了!
关闭主/从表窗体时,少写了一行:TableDetail.filtered:=false;
关闭主/从表窗体时,少写了一行:TableDetail.filtered:=false;
#5
呵呵!
TableDetail.filtered:=false;
TableDetail.filtered:=false;
#1
不太清楚具体什么原因;
不过一般提示key violation是因为主建被赋值为空;
你是不是先添加了一条空记录然后再给各个字段赋值的?
不过一般提示key violation是因为主建被赋值为空;
你是不是先添加了一条空记录然后再给各个字段赋值的?
#2
从表添家数据是基于主表已经有的主键的!
#3
我在另一个窗体打开从表时,从表的记录只显示上一次打开主/从表时,从表中与主表关联的部分,可我想在新窗体中显示从表的全部内容!断开数据库,再联上也只显示那一少部分?
怎么办.高手说一句就行!!!
怎么办.高手说一句就行!!!
#4
自己解决了!
关闭主/从表窗体时,少写了一行:TableDetail.filtered:=false;
关闭主/从表窗体时,少写了一行:TableDetail.filtered:=false;
#5
呵呵!
TableDetail.filtered:=false;
TableDetail.filtered:=false;