数据开发基础知识点-2(多表关联)

上传人:wt****50 文档编号:33546836 上传时间:2018-02-15 格式:DOCX 页数:4 大小:122.64KB
返回 下载 相关 举报
数据开发基础知识点-2(多表关联)_第1页
第1页 / 共4页
数据开发基础知识点-2(多表关联)_第2页
第2页 / 共4页
数据开发基础知识点-2(多表关联)_第3页
第3页 / 共4页
数据开发基础知识点-2(多表关联)_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《数据开发基础知识点-2(多表关联)》由会员分享,可在线阅读,更多相关《数据开发基础知识点-2(多表关联)(4页珍藏版)》请在金锄头文库上搜索。

1、单表取存数据 SQL:(表中有个字段专门存放其它关联表的资料,CustNo 值是从基础表 B 选取)Select IDA,CustNo from A多表关联存取数据:(通过外键关联到基础表取基础表信息 )Select IDA,A.IDCust,B.CustNo from A left Join B on (A.IDCust=B.IDCust)两种设计的比较:单表 :优点写 SQL 方便只需本身的表。无需关联其它表。缺点一但基础表 B 进行变动,业务表没办法即时变动,需写相关方法,把相关联的表的相关数据进行统一更新。多表关联: 优点可以和基础资料同步 ,基础资料一改,相关的所有信息多改。无需担心

2、。缺点:如果一个业务表关联了 N 多基础资料,SQL 语句外键关联 N 张表,SQL 语句宠大.数据存取比较:单表 :更新什么的多比较简单 ,自已写 SQL,或交给数据集跟据数据存取方式,进行提交,参考数据开发基础知识点-1多表关联:多表关联,难点在于处理 SQL,假设业务表关联基础表 ,我进行业务编辑,提交更新删除应是对业务表进行处理,而基础表信息保持不变。或者多表关联,我只想对单中的几张表进行数据处理,而其它的不动。第一种方法:自已写提交 SQL,遍历数据集,跟据数据集改变的状态写 SQL 语句进行相对应的更相:例: TClientDataSetTClientDataSet 更改的数据多保

3、存在其 Delta 中.我们可以这么做:/把修改的数据保存在一个临时 TClientDataSet,当然也可以直接对 ClientDataSet1 进行一条一条判断.ClientDataSet2.Data:=ClientDataSet1.Delta; ClientDAtaSet2.First;while not ClientDataSet2.Eof dobeginif ClientDataSet2.UpdateStatus=usUnModified then /未更改elseif ClientDataSet2.UpdateStatus=usModified then /修改( 自已写组合 SQ

4、L 语句./自已写组合 SQL 语句.进行处理elseif ClientDataSet2.UpdateStatus=usInserted then /新增(自已写 SQL 语句/自已写组合 SQL 语句.进行处理elseif ClientDataSet2.UpdateStatus=usDeleted then /删除(自已写 SQL 语句/自已写组合 SQL 语句.进行处理ClientDataSet2.Next;end;此种方法自已组合 SQL 一不小心写错了,就挂了。假设我同时改动一万条数据 .可以想想这 SQL 语句有多大.如果是执行一万次有不合理,和服务器交互一万次,真心考验服务器,及网

5、络.第二种方法:利用相关类似的 TUpdateSQL 控件来处理.现在的 QUERY 控件多有个属性,可以挂勾 TUpdateSQL 一类控件.这个控件的好处就是数据集更新时,新增,删除,修改是通过此控件的 DelSQL,InsertSQL,ModifySQL 的语句生成对应的SQL 进行提交。而且此控件可以在设计时设计,直连到相关语句自动生成几个处理语句 .如下图:(关联好各个控件)按下 GenerateSQL 会自动生成如下:在此生成的语句,可以自已改动为自已想要的。可以放一些相关触发操作也可.总结:两种方法各有各的优点,不同的方案选择最佳的方法,如有别的看法和方法可以以本人联系商讨。-by FLM QQ:378464060 转载请注明原作。 尊重原作.-下一期看点:DataSnap 的前世今生分析解读.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号