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