我下载了一个源码,XSDD001(code,ghscode,ywycode...),GHSDA(code,name,...),RYDA(code,name,...),后两个表的code都是主键。
ADOTable1连接XSDD001,ADOTable3连接GHSDA,ADOTable4连接RYDA。
ADOTable1有两个Lookup类型的字段:ywyname、khname 
1、khname属性如下:
keyfields:ghscode
lookupcache:true
lookupdataset:ADOTable3
lookupkeyfields:code
lookupresultfield:name
2、ywyname属性如下:
keyfields:ywycode
lookupcache:true
lookupdataset:ADOTable4
lookupkeyfields:name
lookupresultfield:name
奇怪,当用Append插入数据时,选择连接RYDA表控件后显示正常,而选择连接GHSDA表控件后提示发生未知的错误!!为什么?难道lookupkeyfields的字段不能是主键吗?还是属性设置有问题?谢谢!!

解决方案 »

  1.   

    在向XSDD001插入数据时,要确保ghscode和ywycode字段中的内容,在GHSDA和RYDA中已经存在对应的code值。
    不然,无法向XSDD001插入数据。
    lookup的含义就是在外键表中寻找匹配值来显示,如果外键表中没有该键值,那就找不到匹配值,lookup失败。
    LZ的例子中ghscode和ywycode就是XSDD001的外键表。
      

  2.   

    在向XSDD001插入数据时,就是要把GHSDA和RYDA中的code值添加到ghscode和ywycode字段中啊?怎么说要确保ghscode和ywycode字段中的内容,在GHSDA和RYDA中已经存在对应的code值?不是编辑状态下才能与之对应吗?
      

  3.   

    那为什么点击连接RYDA表中的dxDBExtLookupEdit1控件进行选择的时候又可以正常显示呢?