`
fcm915
  • 浏览: 111079 次
  • 性别: Icon_minigender_1
  • 来自: 泰安
社区版块
存档分类
最新评论

DBF表与SQL Server表的导入、导出

阅读更多
----------Dbf 导入 Sql Server表----------

以下均以SQL2000、VFP6及以上的表为例


代码导入:查询分析器中执行如下语句(先选择对应的数据库)

-------------如果接受导入数据的SQL表已存在

--如果接受导入数据的SQL表已经存在
Insert Into 已经存在的SQL表名 Select * From openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:','select * from aa.DBF')

--也可以对应列名进行导入,如:
Insert Into 已经存在的SQL表名 (列名1,列名2...) Select (对应列名1,对应列名2...) From openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:','select * from aa.DBF')


-------------如果接受导入数据的SQL表不存在,导入时创建

--方法一:有一个缺点:把DBF表导入SQL Server中后,马上用VISUAL FOXPRO打开DBF表,会提示“不能存取文件”,即这个表还被SQL打开着呢。可是过了1分钟左右,再打开DBF表就可以了,说明经过一段时间后查询分析器才把这个表关闭。
Select * Into 要生成的SQL表名 From openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:','select * from dbf表名.DBF')

--方法二:有一个缺点:把DBF表导入SQL Server中后,马上用VISUAL FOXPRO打开DBF表,会提示“不能存取文件”,即这个表还被SQL打开着呢。可是过了1分钟左右,再打开DBF表就可以了,说明经过一段时间后查询分析器才把这个表关闭。
Select * Into TEMP1 From openrowset('VFPOLEDB.1','C:';'admin';'' ,'select * from dbf表名.DBF')
--如果没有安装VFP,需要把vfpoledb.dll拷贝到SYSTEM目录下,并注册。

--方法三:导入SQL SERVER后,源表再用VFP打开就不提示“不能存取文件”,说明语句执行后就把源表关闭了。不过也有不尽人意的地方,就是用前两种方式导入后,源表中的字符型字段导入后SQL表字段对应变成NVARCHAR了。
Select * Into 要生成的SQL表名 From OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase IV;HDR=NO;IMEX=2;DATABASE=c:','select * from dbf表名.dbf')

--方法四:导入SQL SERVER后,源表再用VFP打开就不提示“不能存取文件”,说明语句执行后就把源表关闭了。不过也有不尽人意的地方,就是用前两种方式导入后,源表中的字符型字段导入后SQL表字段对应变成NVARCHAR了。
Select * Into 要生成的SQL表名 From OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase III;HDR=NO;IMEX=2;DATABASE=c:','select * from dbf表名.dbf')

--方法五:用BDE驱动导入时,再用VFP打开源表时不会提示“不能存取文件”
Select * From OPENROWSET('MSDASQL','CollatingSequence=ASCII;DBQ=D:SEND;DefaultDir=D:SEND;Deleted=0;Driver={Driver do Microsoft dBase (*.dbf)};FIL=dBase 5.0','select * from dbf表名.DBF') A
--前提:先在机器上安装BDE的驱动

--也可以只导几个字段
Select * Into 要生成的SQL表名 From openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:','select 字段1,字段2 from aa.DBF')

/*说明:
SourceDB=c:    c:是dbf文件的存放目录
aa.Dbf        是dbf文件名
*/

工具导入1:通过SQL Server的“导入导出数据”工具(DTS)

1、建立Visual FoxPro的数据源:

在ODBC中建立一个Visual FoxPro的数据源(ODBC-Microsoft Visual FoxPro Driver)的步骤如下:
打开ODBC配制窗口 ->
选择“用户DSN”页面或“系统DSN”页面,建议用后者 ->
点击“添加”按钮 ->
选择“Microsoft Visual FoxPro Driver”这个驱动 ->
在Data Source Name(数源源名称)处输入此数据源名称,可自定,本例如LjDbf,Database Type(数据库类型)处选择“Free Table directory”(自由表路径),然后在下面的Path(路径)处设置你要导入的DBF表所在的路径,本列如“D:” ->
点击“OK”(确定)配制完成 ->
关闭ODBC配制窗口

2、通过SQL的导入导出数据(DTS)来把DBF表导成SQL表:

开始 ->
程序 ->
Microsoft Sql Server-导入导出数(DTS)->
下一步 ->
此步为“选择数据源”的窗口,“数据源”选“Microsoft Visual FoxPro Driver”,同时在"用户/系统DSN"处选择你刚刚配制的数据源名(本例如LjDbf,当然上面配制数据源的过程也可以通过“用户/系统DSN”后面有一个“新建”按钮来完成),然后点击“下一步” ->
此步为“选择目的”的窗口,“目的”选"用于SQL Server的Microsoft OLE DB提供程序"(此项一般为默认),同时选择你要导成的SQL表的存放数据库、服务器及服务器的验证方式,然后点击“下一步” ->
这时:
A:如果要把DBF表全部字段均导入,则选择“从源数据库复制表和视图”,点击“下一步” ->
选择要导入的DBF表,在‘目的’处可修改生成SQL表的名称,默认与DBF表名一样,点击“下一步” ->
再点击“下一步” ->
最后点击“完成”进行导入即可(导入成功与否DTS会有提示)。

B:如果只导入DBF表中的几个字段或全部字段(如果导入全部字段,也可以用上面步骤A,结果是一样的,只是方法不同),则选择“用一条查询指定要输出的数据”,点击“下一步” ->
点击“查询生成器”,选择要导入的DBF表(此时可选择列),点击“下一步” ->
指定排序顺序,选一个或多个排序字段,如果不用排序,此步可略,点击“下一步” ->
此步可以指定查询条件,如果没有条件,此步可略,点击“下一步” ->
出现了对应的SQL语句(也可以再修改生成的SQL语句,但不推荐),再点击“下一步” ->
这时可修改要生成的SQL表名,默认为“结果”,再点击“下一步” ->
再点击“下一步” ->
最后点击“完成”进行导入即可(导入成功与否DTS会有提示)。



工具导入2:

先把DBF表转成EXCEL或TXT,然后SQL SERVER的导入导出工具把EXCEL或TXT导入即可(此方法类似方法二,不再介绍)。

----------Sql Server表 导出 Dbf----------

方法一:如果DBF表已经存在,在查询分析器中执行以下语句(先选择对应的数据库)


Insert Into openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:','select * from 表B.DBF') Select * From 表a

/*说明:
SourceDB=c: c:是dbf文件的存放目录
表B.Dbf  是已经存在dbf文件名,数据导入此表
表A.Dbf  是要导出的SQL表名
*/


方法二:如果DBF表不存在,直接导出时创建,通过SQL Server的“导入导出数据”工具

1、建立Visual FoxPro的数据源:

在ODBC中建立一个Visual FoxPro的数据源(ODBC-Microsoft Visual FoxPro Driver)的步骤如下:
打开ODBC配制窗口 ->
选择“用户DSN”页面或“系统DSN”页面,建议用后者 ->
点击“添加”按钮 ->
选择“Microsoft Visual FoxPro Driver”这个驱动 ->
在Data Source Name(数源源名称)处输入此数据源名称,可自定,本例如LjDbf,Database Type(数据库类型)处选择“Free Table directory”(自由表路径),然后在下面的Path(路径)处随便设置一个路径,本列如“D:” ->
点击“OK”(确定)配制完成 ->
关闭ODBC配制窗口


2、通过SQL的导入导出数据(DTS)来把SQL表导成DBF表:

开始 ->
程序 ->
Microsoft Sql Server-导入导出数(DTS)->
下一步 ->
此步为“选择数据源”的窗口,“数据源”选"用于SQL Server的Microsoft OLE DB提供程序"(此项一般为默认),同时选择你要导出的SQL表所在数据库、服务器及服务器的验证方式,然后点击“下一步” ->
此步为“选择目的”的窗口,“目的”选“Microsoft Visual FoxPro Driver”,同时在"用户/系统DSN"处选择你刚刚配制的数据源名(本例如LjDbf,当然上面配制数据源的过程也可以通过“用户/系统DSN”后面有一个“新建”按钮来完成),然后点击“下一步” ->
这时:
A:如果要把被导出的SQL表的全部字段均导出,则选择“从源数据库复制表和视图”,点击“下一步” ->
选择要导出的表或视图,在‘目的’处可修改生成的DBF表的名称,默认与SQL表名一样,点击“下一步” ->
再点击“下一步” ->
最后点击“完成”进行导出即可(导出成功与否DTS会有提示),导出成功之后的DBF表的主文件名与SQL的表名一样。

B:如果只导出SQL表中的几个字段或全部字段(如果导出全部字段,也可以用上面步骤A,结果是一样的,只是方法不同),则选择“用一条查询指定要输出的数据”,点击“下一步” ->
点击“查询生成器”,选择要导出的SQL表(此时可选择列),点击“下一步” ->
指定排序顺序,选一个或多个排序字段,如果不用排序,此步可略,点击“下一步” ->
此步可以指定查询条件,如果没有条件,此步可略,点击“下一步” ->
出现了对应的SQL语句(也可以再修改生成的SQL语句,但不推荐),再点击“下一步” ->
这时可修改要生成的DBF表名,默认为“结果”,再点击“下一步” ->
再点击“下一步” ->
最后点击“完成”进行导出即可(导出成功与否DTS会有提示)。

注:
导出成功后,DBF文件一般存于 Microsoft Sql Server80ToolsBinn 或 Program FilesCommon FilesODBCData Sources目录下,并没有存于上面所说的D:,这个我也不知为什么,哪位如果知道,请告之。



*!* 以下转自 wwwwb
*!* 以下是用VFP+ADO+JET SQL实现在不同的数据库系统之间自由转换,生成的DBF用VFP打开,
*!* 修改字段长度即可。
*!* 注意:不同的数据库系统有不同的字段类型、长度等等,特殊字段不能转换,如
*!* IMAGE、TEXT等等,要手工转换。


oConnection = Createobject("adodb.connection")
With oConnection
    .ConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:;Extended Properties=dbase 5.0;Persist Security Info=False'
    .Open
Endwith
TEXT To lcStr Noshow
    Select * Into 要生成的DBF表名 From Sql表名 in [odbc] [ODBC;Driver=SQL Server;UID=sa;PWD=;Server=计算机名;DataBase=数据库名]
Endtext
oConnection.EXECUTE(lcStr)
oConnection.Close

分享到:
评论

相关推荐

    dbf文件导入SQL server

    本主题聚焦于如何将DBF(dBase文件格式)导入到SQL Server数据库,并将数据导出至本地Excel。DBF是一种早期的数据库文件格式,常用于FoxPro、dBase等系统,而SQL Server是微软提供的一个强大、可靠的关系型数据库...

    sqlserver2008r2表导出dbf

    - 在“编辑 Flat File Destination”对话框中,指定文件路径和名称,例如“sqlserver倒dbf.dbf”,设置列分隔符,通常为ASCII字符9(制表符)。 - 在“选择表或视图”选项卡中,选择要导出的表,预览数据以确保...

    SQL Server SQL语句导入导出大全

    简介:微软 SQL Server 数据库 SQL 语句导入导出大全,包括与其他数据库和文件的数据的导入导出。下面是 SQL Server SQL 语句导入导出大全的详细知识点。 导出到 Excel 为了将数据导出到 Excel,使用 EXEC master....

    SQL_SERVER数据导入导出工具

    SQL_SERVER数据导入导出工具是数据库管理中必不可少的辅助软件,尤其对于SQL Server数据库的开发者和管理员来说,它极大地提高了工作效率。此工具主要用于方便、快捷地将数据从SQL Server数据库导出,同时也能进行...

    数据的导入导出工具 能迁移dmp\dbf\sqlserver\access等数据

    数据的导入导出工具在IT领域中扮演着至关重要的角色,尤其对于数据库管理和维护工作而言。这类工具能够方便地将数据从一个环境迁移到另一个环境,或者在不同的数据库系统之间进行转换。标题和描述中提到的数据迁移...

    win2003server_x64+sqlserver2000开发版+T-SQL中EXCEL&DBF导入导出配置及使用说明

    - "win2003server_x64+sqlserver2000开发版+T-SQL中EXCEL&DBF导入导出配置及使用说明.txt" 文件应该包含详细的步骤、注意事项和可能遇到的问题解决方法。确保仔细阅读此文件,以便正确配置和使用上述功能。 7. *...

    C# 导出DBF的两种方法

    在IT行业中,数据库文件格式是数据存储和交换的关键部分,DBF(dBASE ...通过查看和学习这些代码,你可以更好地理解如何在C#中操作DBF文件,从而实现数据的导入导出。请确保正确引用和配置项目,以便代码能正常运行。

    SQL Server 导入导出大全

    SQL Server 提供了多种方法来实现数据的导入导出功能,包括但不限于 Excel 文件、文本文件、dBase IV 文件、dBase III 文件、DBF 文件以及 XML 文件等。本文将详细介绍这些方法的具体操作步骤和技术细节。 #### ...

    DBF数据库转换成SQL Server表的方法.pdf

    SQL Server的bcp命令允许用户在数据库和文件之间导入导出数据。命令格式和主要参数包括: - `database-name`: 指定数据库名称 - `owner`: 指定表的所有者 - `table-name`: 表名 - `in / out`: 分别表示从文件...

    c# DBF数据库导入导出实例

    在C#编程环境中,DBF数据库的导入导出是一个常见的任务,特别是在处理旧的数据存储格式或者需要与Visual FoxPro等老版本数据库系统交互时。这个实例展示了如何使用OdbcConnection和相关的ADO.NET对象来实现这一功能...

    SQL语句导入导出大全

    总结,SQL语句提供了多种方式来处理数据的导入导出,包括与Excel、文本文件和dBase文件的交互。这些操作对于数据的交换、备份和分析至关重要,确保了数据在不同系统间的流畅传输。了解并熟练掌握这些技术,对于...

    DBF数据库转换成SQL Server6.5表的几种方法.pdf

    具体操作步骤可能涉及在Access中打开dbf文件,然后将数据导出到Excel等中间文件格式,最终通过SQL Server导入工具或SQL语句将数据加载到SQL Server表中。 在进行DBF数据转换时,需要特别注意数据类型的兼容性、字符...

    从数据库中导出表生成dbf文件命令

    BCP是SQL Server提供的一款用于快速导入导出数据的工具。它支持将数据从SQL Server数据库批量复制到文本文件或从文本文件批量复制到SQL Server数据库。BCP可以用于备份数据、迁移数据等场景。 ### 命令参数解析 ...

    FoxPro DBF数据库转换成SQL Server 2000表的几种方法.pdf

    首先,SQL Server提供了一个名为bcp(Bulk Copy Program)的命令行实用程序,专门用于执行大规模数据的导入导出操作。使用bcp转换时,可以将DBF文件中的数据导入到SQL Server的表中。bcp工具具有许多参数,用于定义...

    Foxpro DBF数据库转换成SQL Server6.5表的几种方法.pdf

    Microsoft Access提供了DBF文件的导入导出功能,并且支持数据与SQL Server的链接。可以先将DBF数据导入Access数据库,然后通过Access提供的数据转换工具或编写宏命令,将数据再导出到SQL Server表中。这种方法比较...

    连接导入导出SQL语句大全

    在SQL中,连接导入导出数据是数据库管理中常见的任务,尤其对于开发人员和数据库管理员而言,能够熟练掌握这些操作至关重要。以下是一些关键的SQL语句和方法,用于从不同来源连接、导入和导出数据。 1. **从Excel...

Global site tag (gtag.js) - Google Analytics