标题: 三层结构和印度模式的讨论
问天
元帅
Rank: 1


元帅勋章 终身成就勋章
UID 11493
精华 187
积分 34221
帖子 33355
威望 91
金币 13148
热心 2619
阅读权限 100
注册 2006-4-7
状态 离线
三层结构和印度模式的讨论

在研究WEBSERVICES的时候,调用WEBSERVICES并不用直接与数据库打交道。在传统的C/S应用程序中,完全可以采用这种业务分层方式。对数据表的访问,一般都是一维和二维结构,这样,我们可以构建高可重用的数据库读写模块。例如:
Function ReadData(TableName as String,SQLstring as String) as Object
...
End Function
    这个函数以数组的形式返回一维或二维的记录集,其中一维数组表示一条记录,二维数组返回N条记录。SQLstring为查询条件。
Function WriteData(TableName as String,RecArray as Object) as Boolean
...
Rs.Open "select * from 主键=RecArray(N)",...
if Rs.eof then
    Rs.addnew    '若记录不存在,添加新记录
else
    For i=0 to Rs.field.count-1
        rs.field(i).value=RecArray(i)
    next
end if
Rs.Update
...
End Function
    这里以添加一条记录为例,数组长度=字段数。若记录存在则更新,否则则添加新记录。
    有文章说印度人喜欢使用大数组,其实是很有效率的。我们在数据查询/修改模块里建立一个全局数组。在Form_load事件中将记录读取到数组中(一维数组记录一条记录,二维数组记录N条记录),这样我们在修改/增加记录时,同时修改该数组。这样我们在刷新显示数据时,只需显示数组的相应记录即可。而保存时,调用上面的写数据函数即可完成。  
    这样做的好处是,不管怎样修改记录,我们只需执行一次数据读取函数,即使数据更新,也简单的从数组中选取相关的记录即可。
    采用这种严格分层的编程方式,编程思路相对简单,代码的重用性非常高。对于团队合作并行设计的编程思路,是一个行之有效的方法。
    简单探讨,欢迎有类似设计思路的朋友批评和讨论。


网友 问天 签名 - 网友社区 请您回个帖。谢谢
PR查询 免费域名 免费空间
顶部
[广告] 免费域名(Free Subdomain) 免费空间(Free hosting) PR查询(Google Pagerank)



当前时区 GMT+8, 现在时间是 2008-12-5 08:31
信产部ICP备案:京ICP备05066424号 北京市公安局网监备案:1101050648号

Powered by Discuz! 5.5.0
清除 Cookies - 联系我们 - 网友俱乐部 - Archiver - WAP