起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 174|回复: 4

【结贴】多表查询时,怎样使用TSQLDataSet进行更新

[复制链接]
发表于 2009-11-23 08:50:13 | 显示全部楼层 |阅读模式
我在信息层建立了一个TSQLDataSet,SQL语句如下:
SELECT ZTB_DBHZSBDJB.HZSBGUID,ZTB_DBHZSBDJB.HZSBMC,ZTB_DBHZSBDJB.HZSBDM,ZTB_DBHZSBDJB.XH,ZTB_DBHZSBDJB.JLDW,sum(ZTB_DBZBSBFLTJMXBB.SLHJ) AS SLHJ, sum(ZTB_DBZBSBFLTJMXBB.TBZJHJ) AS TBZJHJ
from ZTB_DBZBSBFLTJMXBB,ZTB_DBHZSBDJB,ZTB_HZSBGXPZB
where ZTB_DBZBSBFLTJMXBB.HZSBGUID = ZTB_DBHZSBDJB.HZSBGUID
and ZTB_HZSBGXPZB.HZSBGUID = ZTB_DBHZSBDJB.HZSBGUID
and ZTB_HZSBGXPZB.WZGUID in (SELECT WZGUID FROM ZTB_DBXXB)  
group by ZTB_DBHZSBDJB.HZSBGUID,ZTB_DBHZSBDJB.HZSBMC,ZTB_DBHZSBDJB.HZSBDM,ZTB_DBHZSBDJB.XH,ZTB_DBHZSBDJB.JLDW

更新语句是对其中一个表进行更新,INSERT:
INSERT INTO ZTB_DBZBSBFLTJMXBB
( TJBMXGUID , TJBGUID , HZSBGUID , HZSBMC , HZSBDM , XSXH , JLDW , SLHJ , TBZJHJ , BZXX )
VALUES ( :TJBMXGUID , :TJBGUID , :HZSBGUID , :HZSBMC , :HZSBDM , :XSXH , :JLDW , :SLHJ , :TBZJHJ , :BZXX )
UPDATE和DELETE都是对这个表更新。
请问我这么设置,是否能够对这个表进行增删改?可以的话,如何把我用上面的SQL查询出来的结果,写回这个表?
回复

使用道具 举报

发表于 2009-11-23 09:16:12 | 显示全部楼层
楼主,你设置数据集的更新选项,把增删改的sql自己在更新选项中分别写好就可以正常提交了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-23 09:30:14 | 显示全部楼层
我不明白的是代码应该怎么写。
设数据集的实例为A。
如果我open这个数据集A,那么应该是执行多表查询的语句吧。那查询出来的结果正是我要写入表中的,那应该怎么写?是按照下面的步骤吗:
遍历数据集A的数据
begin
数据集A Append;
把一行数据赋值给数据集A新增的一行
end;
数据集A ApplyUpdate
回复 支持 反对

使用道具 举报

发表于 2009-11-23 09:41:49 | 显示全部楼层
楼主,单表的怎么写你是知道的,对吧?那么你可以这样实验一下:
设置好此数据集的更新选项中的增删改语句后,通过平台的数据导航来对此数据集的增删改操作,看是否可以。如果可以了,那么你再来写对应的代码就行了。

具体写法跟是否多表没有任何关系。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-23 15:50:42 | 显示全部楼层
自己理解错误,结贴吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-14 04:50 , Processed in 0.038704 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表