zoukankan      html  css  js  c++  java
  • 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:广州市GZYJGZYJJKGZYJJKinDebugDllGdata";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_MACHINESOFTWAREMicrosoftOffice“

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

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

    在打开的注册表编辑器窗口中,定位到HKEY_CLASSES_ROOTInstallerProducts注册表项。

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

     

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

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

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

    执行一下语句 

    select *  from

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

    既可以查询到数据。

  • 相关阅读:
    iOS使用Charles(青花瓷)抓包并篡改返回数据图文详解(转)
    iOS 9 添加白名单
    iOS 中字体的应用(转)
    iOS 后台操作的开发(转)
    iOS 知识点大总结(转)
    在Xcode中找中文字符串(正则表达式)
    block 使用时的注意点(转)
    xcode armv6 armv7 armv7s arm64 (转)
    使用Android studio过程中发现的几个解决R变红的办法
    折腾了一晚上的“equals”和“==”
  • 原文地址:https://www.cnblogs.com/cl1006/p/9924066.html
Copyright © 2011-2022 走看看