在研究webservices的時(shí)候,調(diào)用webservices并不用直接與數(shù)據(jù)庫打交道。在傳統(tǒng)的c/s應(yīng)用程序中,完全可以采用這種業(yè)務(wù)分層方式。對(duì)數(shù)據(jù)表的訪問,一般都是一維和二維結(jié)構(gòu),這樣,我們可以構(gòu)建高可重用的數(shù)據(jù)庫讀寫模塊。例如: function readdata(tablename as string,sqlstring as string) as object ... end function 這個(gè)函數(shù)以數(shù)組的形式返回一維或二維的記錄集,其中一維數(shù)組表示一條記錄,二維數(shù)組返回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 這里以添加一條記錄為例,數(shù)組長(zhǎng)度=字段數(shù)。若記錄存在則更新,否則則添加新記錄。 有文章說印度人喜歡使用大數(shù)組,其實(shí)是很有效率的。我們?cè)跀?shù)據(jù)查詢/修改模塊里建立一個(gè)全局?jǐn)?shù)組。在form_load事件中將記錄讀取到數(shù)組中(一維數(shù)組記錄一條記錄,二維數(shù)組記錄n條記錄),這樣我們?cè)谛薷?增加記錄時(shí),同時(shí)修改該數(shù)組。這樣我們?cè)谒⑿嘛@示數(shù)據(jù)時(shí),只需顯示數(shù)組的相應(yīng)記錄即可。而保存時(shí),調(diào)用上面的寫數(shù)據(jù)函數(shù)即可完成。 這樣做的好處是,不管怎樣修改記錄,我們只需執(zhí)行一次數(shù)據(jù)讀取函數(shù),即使數(shù)據(jù)更新,也簡(jiǎn)單的從數(shù)組中選取相關(guān)的記錄即可。 采用這種嚴(yán)格分層的編程方式,編程思路相對(duì)簡(jiǎn)單,代碼的重用性非常高。對(duì)于團(tuán)隊(duì)合作并行設(shè)計(jì)的編程思路,是一個(gè)行之有效的方法。 簡(jiǎn)單探討,歡迎有類似設(shè)計(jì)思路的朋友批評(píng)和討論。