ClientDataSet中的内容如下:工号  姓名 部门 职务 其中只有工号是更新表中的列,“姓名 部门 职务”是通过Join得到的。现在客户要求,在“工号”列输入后要自动对应输入的工号显示出来“姓名 部门 职务”数据。这样我就必须更改“姓名 部门 职务”这三个列。在提交时遇到问题,更新表中没有“姓名 部门 职务”列,更新会出现错误。请教各位,有什么解决方法,或者解决思路嘛?

解决方案 »

  1.   

    提交时自己携代码控制( 用insert 或Update语句更新),不要用clientdataset的post方法
      

  2.   

    在provider的onupdateRecord(记不清具体拼写了)中用insert 或Update语句更新,如果是BDE,可以直接用TUpdateSQL
      

  3.   

    通过Join得到QUERY数据集是不能直接进行提交的,要用insert 或Update语句更新,或者你不要用Join得到数据集采用LOOUP字段来显示数据就可以直接提交了
      

  4.   

    自己在server上写一个执行update的接口也可以在typelibrary中添加
      

  5.   

    有没有什么方法可以从ClientDataSet的Delta属性值中删除列?如果可以的话,删除“姓名 部门 职务”列的更新数据应该就可以实现提交
      

  6.   

    我用SQLQuery实现起来非常简单。
      

  7.   

    使用Lookup或第三方控件可以解决:
    一、第三方控件:
    1、先将"工号  姓名 部门 职务"作为一个代码表提出来,写入三个wwDBComboBox控件;
    2、然后将这三个wwDBComboBox控件都绑定“工号”字段;
    二、用LookUp
    1、先将"工号  姓名 部门 职务"作为一个结果集提出来,用三个DBComboBox;
    2、然后将这三个DBComboBox控件都绑定“工号”字段,Lookup设定为第一步提出来的结果集;
      

  8.   

    Erice 兄说的意思是:
      显示用一个CDS,表数据用一个CDS,显示用的CDS不用来直接提交,而是通过显示CDS间接的更新表数据CDS,提交的时候用表数据CDS。不知道我理解的对不对?