Sqlserver 2012 導入 DBF文件


將dbf文件放在任意系統目錄下,我放在d:\db目錄下

 

需安裝 AccessDatabaseEngine.exe (ACE)

官網下載地址:

https://www.microsoft.com/en-us/download/details.aspx?id=13255 

 安裝之后在 sqlserver 實例下 ->“鏈接服務器”-> “訪問接口”中會看到以下接口。

 

執行以下語句:

exec sp_configure 'show advanced options',1

reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure


EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 

在ssms中執行sql查詢語句

select*from OPENROWSET('Microsoft.ACE.OLEDB.12.0','dBase IV;HDR=NO;IMEX=2;DATABASE=d:/db','select * from [2015.DBF]') 

這里因為環境原因可能會報ISAM錯

研究了很長時間網上搜了很多資料,最終 在這里得到啟發https://support.hp.com/cn-zh/document/c01208058 ,是因為缺少ISAM驅動,

於是 找到對應的msxbse35.dll 注冊,注冊后 需要重新啟動數據庫服務器才有效果。

再次執行sql 查詢命令

select*from OPENROWSET('Microsoft.ACE.OLEDB.12.0','dBase IV;HDR=NO;IMEX=2;DATABASE=d:/db','select * from [2015.DBF]')

 提示如下

需安裝Foxpro,並在Foxpro命令框輸入以下命令 回車,將dbf文件轉換格式

USE 'd:\db\2015.dbf' EXCLUSIVE;

COPY TO 'd:\db\2015new.dbf' TYPE FOX2X;

或在Foxpro里將當前dbf文件導出為 dBase IV格式:

 

 

 再次執行,這里應該選擇新的dbf文件2015new.dbf,最終成功讀取了dbf文件內容。速度還是比較快的,100多萬的數據全表查詢用了1分鍾左右。

 select*from OPENROWSET('Microsoft.ACE.OLEDB.12.0','dBase IV;HDR=NO;IMEX=2;DATABASE=d:/db','select * from [2015new.DBF]')

 

步驟五:關閉系統存儲過程高級選項開關

exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure

 知識點總結:

1.以下命令作用

 --開啟數據庫系統存儲過程高級選項

exec sp_configure 'show advanced options',1

reconfigure

--即席分布式查詢服務器配置選項,開啟之后可跨數據庫訪問

--參閱:https://msdn.microsoft.com/zh-cn/library/ms187569.aspx

exec sp_configure 'Ad Hoc Distributed Queries',1

reconfigure

--修改ACE接入參數
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 

 

以上內容還涉及到很多知識點,但時間原因暫沒深入去逐個研究,只是點到為止。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM