ClientDataSet提交数据问题!
ClientDataSet中的内容如下:
工号 姓名 部门 职务
其中只有工号是更新表中的列,“姓名 部门 职务”是通过Join得到的。
现在客户要求,在“工号”列输入后要自动对应输入的工号显示出来“姓名 部门 职务”数据。这样我就必须更改“姓名 部门 职务”这三个列。
在提交时遇到问题,更新表中没有“姓名 部门 职务”列,更新会出现错误。
请教各位,有什么解决方法,或者解决思路嘛?
问题点数:100、回复次数:14Top
1 楼smilefox2000(V6)回复于 2005-02-24 09:13:35 得分 0
提交时自己携代码控制( 用insert 或Update语句更新),不要用clientdataset的post方法Top
2 楼soyisoft(Gino)回复于 2005-02-24 09:22:45 得分 0
这个方式太麻烦了吧??
期待其他的解决方式 …………Top
3 楼ssq237712(流亡帅哥)回复于 2005-02-24 10:43:58 得分 0
在provider的onupdateRecord(记不清具体拼写了)中用insert 或Update语句更新,如果是BDE,可以直接用TUpdateSQLTop
4 楼luckyboy97(幸运男孩)回复于 2005-02-24 10:56:59 得分 0
通过Join得到QUERY数据集是不能直接进行提交的,要用insert 或Update语句更新,或者你不要用Join得到数据集采用LOOUP字段来显示数据就可以直接提交了Top
5 楼lhfeng(荣荣)回复于 2005-02-24 11:00:37 得分 0
自己在server上写一个执行update的接口也可以在typelibrary中添加Top
6 楼soyisoft(Gino)回复于 2005-02-24 11:06:23 得分 0
有没有什么方法可以从ClientDataSet的Delta属性值中删除列?如果可以的话,删除“姓名 部门 职务”列的更新数据应该就可以实现提交Top
7 楼soyisoft(Gino)回复于 2005-02-24 11:22:21 得分 0
不知道我的想法是否可行?Top
8 楼waysoft(华子)回复于 2005-02-24 11:26:41 得分 0
我用SQLQuery实现起来非常简单。
Top
9 楼soyisoft(Gino)回复于 2005-02-24 11:44:22 得分 0
怎么简单,说来听听呀!Top
10 楼soyisoft(Gino)回复于 2005-02-24 12:08:14 得分 0
想过用计算列来显示,但是显示已有记录时效率就比较低了Top
11 楼chenylin(陈SIR)回复于 2005-02-24 16:03:57 得分 50
使用Lookup或第三方控件可以解决:
一、第三方控件:
1、先将"工号 姓名 部门 职务"作为一个代码表提出来,写入三个wwDBComboBox控件;
2、然后将这三个wwDBComboBox控件都绑定“工号”字段;
二、用LookUp
1、先将"工号 姓名 部门 职务"作为一个结果集提出来,用三个DBComboBox;
2、然后将这三个DBComboBox控件都绑定“工号”字段,Lookup设定为第一步提出来的结果集;
Top
12 楼soyisoft(Gino)回复于 2005-02-24 16:43:46 得分 0
嗯,这个思路应该可以,试试看。成功了马上结贴!先谢谢各位了Top
13 楼Erice(白雪公猪)回复于 2005-02-24 16:49:39 得分 50
难道不能把表示层和数据层分开吗?
客户看到的是视图 (尽量不要用计算字段什么的,影响速度),当客户修改数据时,操作的是数据层,数据层就是实际的表,不就解决了吗!!Top
14 楼soyisoft(Gino)回复于 2005-02-24 22:36:31 得分 0
Erice 兄说的意思是:
显示用一个CDS,表数据用一个CDS,显示用的CDS不用来直接提交,而是通过显示CDS间接的更新表数据CDS,提交的时候用表数据CDS。
不知道我理解的对不对?Top




