win7(64位)Sql server 用T-sql读取本地数据文件dbf的数据文件

Posted 游林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了win7(64位)Sql server 用T-sql读取本地数据文件dbf的数据文件相关的知识,希望对你有一定的参考价值。

第一步启用Ad Hoc Distributed Queries  SQLserver执行以下的语句:

exec sp_configure \'show advanced options\',1

reconfigure

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

reconfigure

----允许在进程中使用ACE.OLEDB.12   在安装了 ACE2010的驱动才可以执行下面语句。

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

 

 

第二步 到数据库执行下面的查询语句

select *  from   OPENDATASOURCE(\'Microsoft.Jet.OLEDB.4.0\',\'Data Source="E:\\广州市\\GZYJ\\GZYJJK\\GZYJJK\\bin\\Debug\\DllG\\data";Extended properties=dBase 5.0\')...bs_factory

会报一个错误:
消息 7308,级别 16,状态 1,第 3 行
因为 OLE DB 访问接口 \'MICROSOFT.JET.OLEDB.4.0\' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。

是由于Windows64 位操作系统里面没有 ACE2010的驱动,64位的驱动

下载一个64位的驱动   ACE2010的驱动,64位的。 进行安装 ,但是这个驱动必须在office 64 位的环境才能正常安装。

安装前是要将系统中32 office 软件卸载掉 并且删除对应的 注册文件,然后重新安装一个office 64 位和ACE2010的驱动,64位的驱动

卸载office32 位后,打开 注册表进行删除

在打开的运行窗口中,输入命令regedit,然后点击确定按钮。

 找到office注册表信息,路径如下:(win10环境下)

"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Office“

此外,也可通过在“编辑”工具栏下“查找”(快捷键:Ctrl+F),输入”office“在全字匹配”条件下进行查找。具体如图:

 

如有,找到“office”注册表项后,右击“删除”选项,删除原office残留注册表信息。

在打开的注册表编辑器窗口中,定位到HKEY_CLASSES_ROOT\\Installer\\Products注册表项。

 在展开的注册表项中,我们找到以00002开头的注册表项,右键点击该项,在弹出菜单中选择“删除”菜单项。

 

 这时会弹出一个确认项删除的窗口,点击“是”按钮即可。另外我们再删除所有以000051开头的注册表项,重新启动计算机后,再安装64位的Office就不会提示错误 了。

 

将这些删除干净后再 重新安装 office 2010 64位的

再安装相应的  ACE2010的驱动,64位的   。

执行一下语句 

select *  from

OPENDATASOURCE(\'Microsoft.ACE.OLEDB.12.0\',\'Data Source="E:\\DllG\\data";Extended properties=dBase 5.0\')...bs_reg

既可以查询到数据。

 

以上是关于win7(64位)Sql server 用T-sql读取本地数据文件dbf的数据文件的主要内容,如果未能解决你的问题,请参考以下文章

求个SQL server 2008 64位安装包,急用急用,最好是百度云盘,拜托了

win8 64位安装SQL Server2008,试图执行未经授权的操作

sql server2008 r2(64位) 激活密钥

windows server2012R2 64位系统中安装SQL server2008 32位最大使用内存是多少?

windows server 2003 64 位能不能支持 SQL 2000? 是需要安装SQL sp4的补丁吗? 顺求 2003 64位系统..

64位 SQL Server2008链接访问Oracle 过程汇总解决方法记录