在研究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条记录),这样我们在修改/增加记录时,同时修改该数组。这样我们在刷新显示数据时,只需显示数组的相应记录即可。而保存时,调用上面的写数据函数即可完成。 这样做的好处是,不管怎样修改记录,我们只需执行一次数据读取函数,即使数据更新,也简单的从数组中选取相关的记录即可。 采用这种严格分层的编程方式,编程思路相对简单,代码的重用性非常高。对于团队合作并行设计的编程思路,是一个行之有效的方法。 简单探讨,欢迎有类似设计思路的朋友批评和讨论。