動(dòng)態(tài)連接ERP數(shù)據(jù)庫(kù)的前提條件(以用友ERP產(chǎn)品U860的后臺(tái)業(yè)務(wù)數(shù)據(jù)庫(kù)為實(shí)際開(kāi)發(fā)對(duì)象):ERP產(chǎn)品安裝正確,SQL Server數(shù)據(jù)庫(kù)能夠正常啟動(dòng)。
1.動(dòng)態(tài)連接函數(shù)的設(shè)計(jì)
在具體設(shè)計(jì)中,利用Delphi程序開(kāi)發(fā)工具和SQL Server數(shù)據(jù)庫(kù)開(kāi)發(fā)了相應(yīng)的動(dòng)態(tài)連接模塊。考慮到用友ERP產(chǎn)品U860是按照年度賬套結(jié)轉(zhuǎn)的,即在一個(gè)財(cái)政年度內(nèi)有一個(gè)獨(dú)立的賬套,上一個(gè)財(cái)政年度的各類數(shù)據(jù)作為新一個(gè)財(cái)政年度的期初數(shù)據(jù)處理。相應(yīng)地,在SQL Serve中;數(shù)據(jù)庫(kù)中有一個(gè)對(duì)應(yīng)會(huì)計(jì)年度的數(shù)據(jù)庫(kù),每個(gè)會(huì)計(jì)年度對(duì)應(yīng)一個(gè)獨(dú)立的數(shù)據(jù)庫(kù)。因此,我們?cè)谶M(jìn)行六西格瑪項(xiàng)目的分析時(shí),需要對(duì)歷史數(shù)據(jù)進(jìn)行分析,此時(shí)需要連接不同的數(shù)據(jù)庫(kù)。因此,動(dòng)態(tài)連接數(shù)據(jù)庫(kù)的功能必不可少。
程序運(yùn)行后,輸入SQL數(shù)據(jù)庫(kù)服務(wù)器的名稱和要過(guò)濾的數(shù)據(jù)庫(kù)的名稱,然后記錄在Access的數(shù)據(jù)表中,供后續(xù)程序動(dòng)態(tài)連接和調(diào)用。這提高了程序的可擴(kuò)展性和可移植性,并使程序能夠在不同的計(jì)算機(jī)上運(yùn)行。
2.數(shù)據(jù)過(guò)濾功能的設(shè)計(jì)
動(dòng)態(tài)連接到所需數(shù)據(jù)庫(kù)后,需要根據(jù)六西格瑪項(xiàng)目開(kāi)發(fā)的需要,定位不同數(shù)據(jù)表的不同字段記錄。數(shù)據(jù)過(guò)濾功能的設(shè)計(jì)可以簡(jiǎn)化搜索的難度。只需輸入要搜索的數(shù)據(jù)表的名稱,就可以查看所有記錄,并自動(dòng)生成字段選擇項(xiàng),可以根據(jù)字段的值進(jìn)行搜索,減少了工作量,直觀地分析了相應(yīng)的數(shù)據(jù)記錄。
根據(jù)程序界面的提示,輸入數(shù)據(jù)庫(kù)中需要操作的相關(guān)表的名稱。首先,所有數(shù)據(jù)記錄集都可以出現(xiàn)。同時(shí),所有的字段名都會(huì)根據(jù)右側(cè)的表格自動(dòng)生成。可以根據(jù)六西格瑪項(xiàng)目需求選擇查詢對(duì)應(yīng)字段,程序會(huì)自動(dòng)定位匹配。
在實(shí)現(xiàn)數(shù)據(jù)過(guò)濾功能的過(guò)程中,定義了兩種方法和一個(gè)函數(shù),其中FillFieldNames方法用于自動(dòng)獲取輸入數(shù)據(jù)表中的字段名稱;FillSearchValues方法用于搜索所選特定字段的所有非重復(fù)字段值;GetSearchField函數(shù)用于獲取用戶選擇的字段名。
登錄數(shù)據(jù)庫(kù)服務(wù)器時(shí),功能設(shè)計(jì)仍然采用事務(wù)管理操作,在動(dòng)態(tài)分配ADOConnection的String屬性值時(shí),保證了數(shù)據(jù)庫(kù)連接的操作完整性。