◆胡碧波/仙桃市審計(jì)局
審計(jì)實(shí)踐中,經(jīng)常遇到比較小眾的數(shù)據(jù)庫(kù),DBF數(shù)據(jù)庫(kù)就是其中一種。如何在Win7 環(huán)境下將DBF 數(shù)據(jù)庫(kù)采集轉(zhuǎn)換到SQL2008中,是大多數(shù)審計(jì)人員普遍面臨的一道難題。經(jīng)筆者實(shí)踐總結(jié),現(xiàn)將三種采集轉(zhuǎn)換方法分享,供大家參考。
首先,打開(kāi)DBF 閱讀器載入DBF 數(shù)據(jù)庫(kù)文件,在載入的數(shù)據(jù)頁(yè)面點(diǎn)擊右鍵選擇“Export to csv”,導(dǎo)出csv 文件存放在DBF文件目錄下。
然后,打開(kāi)SQL Server 導(dǎo)入和導(dǎo)出向?qū)?,選擇“平面文件源”為數(shù)據(jù)源,文件名選擇csv 文件存放目錄,再點(diǎn)擊左側(cè)的“預(yù)覽”根據(jù)實(shí)際情況選擇合適的“文本限定符”、“標(biāo)題行分隔符”、“要跳過(guò)的標(biāo)題行數(shù)”、“在第一個(gè)數(shù)據(jù)行中顯示列名稱”等內(nèi)容(如圖一)。而后依次選擇下一步,直至完成所選表格數(shù)據(jù)導(dǎo)入。
圖一
一是配置數(shù)據(jù)源。在【控制面板】中打開(kāi)ODBC配制窗口,選擇“用戶DSN”頁(yè)面或“系統(tǒng)DSN”頁(yè)面(建議用后者)添加“Microsoft Visual FoxPro Driver”驅(qū)動(dòng),在Data Source Name(數(shù)源源名稱)處輸入此數(shù)據(jù)源名稱(可自定,本例如DBF),Database Type(數(shù)據(jù)庫(kù)類型)處選擇“Free Table directory”(自由表路徑),然后在下面的Path(路徑)處設(shè)置上述需要導(dǎo)入的DBF 表所在的路徑,點(diǎn)擊“OK”(確定)配置完成后關(guān)閉ODBC配置窗口(如圖二)。
圖二
二是導(dǎo)入Access。新建Access 數(shù)據(jù)文件并打開(kāi),通過(guò)“ODBC數(shù)據(jù)庫(kù)”方式將DBF文件導(dǎo)入到Access中。
三是采集數(shù)據(jù)。打開(kāi)SQL Server 導(dǎo)入和導(dǎo)出向?qū)В瑪?shù)據(jù)源選擇microfoft office 12.0 access database engine ole db provide(如Access 數(shù)據(jù)庫(kù)若為2003 版本,數(shù)據(jù)源選擇Microsoft Access),單擊屬性按鈕然后在數(shù)據(jù)鏈接屬性提示框“數(shù)據(jù)源”填寫Access 文件名稱加后輟,單擊測(cè)試連接,如連接失敗,則根據(jù)提示框要求將Access文件復(fù)制到相應(yīng)目錄下,直至連接成功(如圖三)。而后依次選擇下一步,完成所需表格的數(shù)據(jù)采集工作。
圖三
先啟用Ad Hoc Distributed Queries 高級(jí)配置選項(xiàng),允許openrowset訪問(wèn)外部數(shù)據(jù)源(應(yīng)說(shuō)明的是,如果未配置選項(xiàng),默認(rèn)條件下是不允許訪問(wèn)的)。然后,在SQLServer 數(shù)據(jù)庫(kù)管理器中新建查詢,輸入下列語(yǔ)句:
exec sp_configure'show advanced options',1
reconfigure
exec sp_configure'Ad Hoc Distributed Queries',1
reconfigure
運(yùn)行后接著輸入下列語(yǔ)句,即實(shí)現(xiàn)dbf數(shù)據(jù)庫(kù)導(dǎo)入(如圖四)。應(yīng)注意的是,語(yǔ)句中的DBF文件名為[ysz05_1.dbf],存放在“d:dbf”目錄下;SQL 數(shù)據(jù)庫(kù)的名稱為[test],[ysz05_1]為表的名稱。
Select*into[test].[dbo].[ysz05_1]
From openrowset('MSDASQL','Driver=MicrosoftVisual FoxProriver;SourceType=DBF;SourceDB=d:dbf','select *from[ysz05_1.DBF]')
圖四