官网下载地址:sql
https://www.microsoft.com/en-us/download/details.aspx?id=13255 数据库
安装以后在 sqlserver 实例下 ->“连接服务器”-> “访问接口”中会看到如下接口。服务器
执行如下语句:分布式
exec sp_configure 'show advanced options',1sqlserver
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigurespa
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 13d
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 server
select*from OPENROWSET('Microsoft.ACE.OLEDB.12.0','dBase IV;HDR=NO;IMEX=2;DATABASE=d:/db','select * from [2015.DBF]') blog
这里由于环境缘由可能会报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
以上内容还涉及到不少知识点,但时间缘由暂没深刻去逐个研究,只是点到为止。