• 向SQL2005中导入.dbf文件中的数据


          有时我们需要从.dbf文件中将数据导入到SQL2005中,当然这个可能出于各种原因,比如说:原来项目是用的.dbf的数据库,而现在新的项目里使用的是SQL2005的数据库,但原来的数据又不能丢,这时就需要这类的操作。其实这样的操作是经常的,比如:SQL2005到ORACLE中,或是从ORACLE到SQL2005/2008;最近遇到了这样的问题,在网上寻找了很久,终于得到了一个解决的方法,在此记录一下。

          在SQL2005中,若要读取.dbf的文件的数据,就得启用SQL2005的高级组件,叫:Ad Hoc Distributed Queries,若没有启用就会出现以下的错误提示信息:

         所以需要启动它,代码如下:

           

    ---启用Ad Hoc Distributed Queries:
    exec sp_configure 'show advanced options',1
    reconfigure
    exec sp_configure 'Ad Hoc Distributed Queries',1
    reconfigure

    启动了Ad Hoc Distributed Queries,就可以读取.dbf文件中的数据了,读取的代码如下:

                    

    select*from 
    openrowset('MICROSOFT.JET.OLEDB.4.0'
    ,
    'dBase 5.0;DATABASE=c:/code/','select * from [TD_MZDM.DBF]')

    结果如下:

            

    我们已经读取到了dbf文件中的数据,那么要将它存放在一张表中就很明显了,使用以下代码可以将其数据与表结构导入到SQL2005中:

      

    select*into #td_mzdm from 
    openrowset('MICROSOFT.JET.OLEDB.4.0'
    ,
    'dBase 5.0;DATABASE=c:/code/','select * from [TD_MZDM.DBF]')
    ---查询临时表
    select*from #td_mzdm

    结果与上面是一样的,这里就不截图了

    若是你的SQL2005中已经有一张表结构与dbf文件中表结构相似(就是可以把数据导入的表),那么也可以使用以下的语句完成数据的导入:

    insertinto #td_mzdm
    select*from
    openrowset('MICROSOFT.JET.OLEDB.4.0'
    ,
    'dBase 5.0;DATABASE=c:/code/','select * from [TD_MZDM.DBF]')

    当然我们也可以向dbf文件中插入数据,其方式差不多,代码如下:

    insertintoopenrowset('MICROSOFT.JET.OLEDB.4.0',
    'dBase 5.0;DATABASE=c:/code/',
    'select * from [TD_BYLB.DBF]')
    select*from dbo.td_bylbdm

    结果得到受影响的行数:

    导入完数后,我们需要关闭那个高级选项Ad Hoc Distributed Queries,代码如下:

    ---关闭Ad Hoc Distributed Queries:
    exec sp_configure 'Ad Hoc Distributed Queries',0
    reconfigure
    exec sp_configure 'show advanced options',0
    reconfigure

          最后要说明的一点是:不同的版本的dbf文件所对应的SQL语句不一定都相同,所以以上代码只作为一个参考和思路,谢谢!!!

  • 相关阅读:
    MFC Picture Ctrl 无失真自适应显示图片
    肖申克的救赎
    iOS开发常用工具
    代码管理工具 --- git的学习笔记四《重新整理git(1)》
    压缩与解压缩
    读书笔记——金融学-投资哪些事(职业投资人),读报
    读书笔记——金融学-《国富论》
    文件下载 NSURLConnection——文件下载与上传
    视频播放一
    XML解析
  • 原文地址:https://www.cnblogs.com/xin_ny/p/xin_ny_sql_dbf.html
Copyright © 2020-2023  润新知