ADOTable1连接XSDD001(code,ghscode,...),ADOTable3连接GHSDA(code,name,...)
AdoTable1有一个Lookup类型的字段:khname,属性如下:
keyfields:ghscode
lookupcache:true
lookupdataset:ADOTable3
lookupkeyfields:code
lookupresultfield:name
编译运行后,当在插入状态下点击与khname字段绑定的edit控件时,提示发生未知的错误;但当在编辑状态下点击该控件,又没问题哦?为什么?谢谢!!
AdoTable1有一个Lookup类型的字段:khname,属性如下:
keyfields:ghscode
lookupcache:true
lookupdataset:ADOTable3
lookupkeyfields:code
lookupresultfield:name
编译运行后,当在插入状态下点击与khname字段绑定的edit控件时,提示发生未知的错误;但当在编辑状态下点击该控件,又没问题哦?为什么?谢谢!!
但是插入时,我是这样写的:
ADOTable1.Append;
ADOTable1.FieldByName('code').asstring := code;
为什么还会出现错误呢?
Append
ADOTable1.FieldByName('ghscode').asstring :='0';
运行后,插入时提示:
UPDATE 语句与 COLUMN FOREIGN KEY 约束 'FK_CGDD001_GHSDA' 冲突。该冲突发生于数据库 'ABC',表 'GHSDA', column 'code'。语句已终止
晕,这个数据库我是下载到思微超市源码中的数据库,应该没问题啊?
不然,无法向XSDD001插入数据。
lookup的含义就是在外键表中寻找匹配值来显示,如果外键表中没有该键值,那就找不到匹配值,lookup失败。就是所谓的COLUMN FOREIGN KEY 约束 'FK_CGDD001_GHSDA' 冲突
LZ的例子中ghscode和ywycode就是XSDD001的外键表。
要先检查ADOTable3连接GHSDA(code,name,...)中有没有code等于0的记录。没有就添加一条。