将DBF数据库转换成SQL Server表

将DBF数据库转换成SQL Server表 - 应用软件 - 电脑教程网

将DBF数据库转换成SQL Server表

日期:2006-10-24   荐:
·数据库人员面试:SQL Server常用测试题·PHP连接数据库的方法(3)·[冷枫推荐]:数据库操作,内外联查询,·用JSP从数据库中读取图片并显示在网页·图解MySQL数据库的安装和操作 (1)·PHP中使用类对数据库进行操作·InterBase 数据库函数库·Oracle数据库网络的安装和配置(1)·利用外部命令Oralce数据库导入导出·ACESS数据库与WEB页连接 1、前言 随着计算机技术的发展,客户机/服务器(Client/Server)体系结构的数据库系统应用越来越广泛,而Foxbase、Foxpro是我国近阶段使用较广的数据库开发软件,很多数据都存在DBF表中,本文将介绍如何将DBF表中的数据转换到SQL Server表中。

  2、用Visual Basic编程实现转换 用Visual Basic编程实现转换,即通过SQL Server提供的ODBC接口(开放数据库接口)及Visual Basic中应用数据访问,建立Visual Basic与SQL Server的连接,由Visual Basic向SQL Server提交创建表命令,然后将.dbf的每条记录提交给SQL Server,完成数据转换。DBF的数据结构是(examp1.dbf):

字段名 类型 字段长度 字段内容 Id C 4 货物编号 name C 20 货物名称

  实现步骤:

  (1)在数据库服务器”sqlserver1”中建立数据库sqlexample,建立一个表”example1”,其结构与examp1.dbf结构相同。其结构是:

字段名 类型 字段长度 字段内容 Id C 4 货物编号 name C 20 货物名称

  (2)、ODBC的设置:在客户机上进入Windows的控制面板( Control panel )。双击ODBC数据源(32位)图标,进行数据库的ODBC驱动设置。在用户DSN下,按“添加”,选择SQL Server,在名称输入”sql1”,服务器输入”sqlserver1”,用户名输入”sa”,口令输入”123456”,测试是否连通。


·数据库人员面试:SQL Server常用测试题·PHP连接数据库的方法(3)·[冷枫推荐]:数据库操作,内外联查询,·用JSP从数据库中读取图片并显示在网页·图解MySQL数据库的安装和操作 (1)·PHP中使用类对数据库进行操作·InterBase 数据库函数库·Oracle数据库网络的安装和配置(1)·利用外部命令Oralce数据库导入导出·ACESS数据库与WEB页连接 (3)、在Visual Basic建立一工程,添加“引用”Microsoft ActiveXData Objects2.1 Library和Microsoft DAO 3.51 object library。在Form1上建一个Command1,将Command1的Caption改为转换。 程序清单如下:

Private Sub Command1_Click()

Dim db As Database

Dim tb As Recordset

‘打开C:examp1.dbf

Set db=OpenDatabase(c:,False,False,”foxpro 2.5”)

Set tb=db.OpenRecordset(examp1)

 

Dim conn1 As ADODB.Connection

Dim cmd1 As ADODB.Command

 

Set conn1=New ADODB.Connection

Set cmd1=New ADODB.Command

 

cons1=”ODBC;DATABASE=sqlexample;UID=sa;PWD=123456;DSN=sql1”

conn1.Open cons1

Set cmd1.ActiveConnection=conn1

Do while not tb.EOF

Cmds1=”insert into example1 values(‘“& tb.Fields(0) &”’,‘“& tb.Fields(1)

&”’)”

cmd1.CommandText=cmds1

cmd1.Execute

tb.MoveNext

Loop

 MsgBox“载入完毕”,,”提示”

Cnn1.Close

Unload me

End Sub

  使用上述方法,只要知道一些简单的SQL Server操作及Visual Basic编程便可实现将DBF中的数据载入到SQL Server中。但存在不足之处,如果DBF中数据量很大,超过几十万条记录时,载入的时间将会很长。解决大批量数据载入,需要用到SQL Server所提供的块拷贝实用程序(bcp)

·数据库人员面试:SQL Server常用测试题·PHP连接数据库的方法(3)·[冷枫推荐]:数据库操作,内外联查询,·用JSP从数据库中读取图片并显示在网页·图解MySQL数据库的安装和操作 (1)·PHP中使用类对数据库进行操作·InterBase 数据库函数库·Oracle数据库网络的安装和配置(1)·利用外部命令Oralce数据库导入导出·ACESS数据库与WEB页连接 3、利用SQL Server所提供的块拷贝实用程序(bcp)载入数据   实用程序bcp.exe可从Mssql7目录下的Binn子目录下获得。

  3.1、bcp的命令格式及主要参数

  主要参数:

dbtable 数据库名 in|out in从文件到数据库表的拷贝。 out从数据库表到文件拷贝。 datafile 操作系统文件的路径。 /f 文件格式。 /u username 指定登录用户名。 /P password 指定一个口令。 /S servername 允许用户指定连接到哪个SQL Server

  3.2、实现转换的具体方法 我们将上面的例子,调用Bcp,将数据载入到SQL Server数据库中。先在目录下建立一个文件,名为exam.fmt,其中exam.fmt的内容为:

7.021 SQLCHAR 0 4 "" 1 Id2 SQLCHAR 0 20 "" 2 name


·数据库人员面试:SQL Server常用测试题·PHP连接数据库的方法(3)·[冷枫推荐]:数据库操作,内外联查询,·用JSP从数据库中读取图片并显示在网页·图解MySQL数据库的安装和操作 (1)·PHP中使用类对数据库进行操作·InterBase 数据库函数库·Oracle数据库网络的安装和配置(1)·利用外部命令Oralce数据库导入导出·ACESS数据库与WEB页连接 在Visual Basic中建立一工程,在Form1上在Form1上建一个Command1,将Command1的Caption改为转换。 程序清单如下:

Private Sub Command1_Click()bcp1=”bcp.exe sqlexample..example1 in‘:examp1.dbf’ /S sqlserver1 /U sa/P 123456 /f exam.fmt”ok1=Shell(bcp1,0)

  End Sub 该方法可以用较短的时间将大量数据载入到SQL Server数据库中。但也有其缺点,灵活性较差,使用较为繁琐。

  4、使用软件工具实行数据载入   应用Visual Basic中的外接程序中的可视化数据管理器(VisData)进行数据加载。 实现步骤:

  (1)、SQL Server数据库,DBF文件如上。

  (2)、在Visual Basic中启动VisData,在”文件”菜单中选择“打开数据库”,选择Foxpro2.5,然后打开examp1.dbf数据库。

  (3)、在”文件”菜单中选择”导入/导出”,选择目标数据库类型“ODBC”按“导出”进入下一窗口“选择DSN”,选中sql1,执行。

  (4)、在“Login ID:”栏中输入登录用户名“sa”,在“Password”栏中若有登录口令则输入123456,开始进行数据转换。 应用SQL Server中的数据转换服务(DTS)将数据导入或导出。

  DTS提供了数据传送功能,例如输入、输出以及在微软的SQL Server和任何OLE DB、ODBC或者文本格式之间传送数据。在SQL Server7.0中,你可以利用DTS向导,把DBF文件的数据传送到SQL Server数据库中。因为有DTS向导,在这不详细讲解了。 使用这些方法可以简单、方便快捷、完整地将所有.dbf中的数据的转换到SQL Server。但也有不便之处,必须手工完成操作。若要转换的数据量很大时,使用的时间较长。

  5、结束语   以上几种方法运行环境服务器端网络操作系统为Window NT 4.0,网络数据库为SQL Server 7.0,客户机Windows 98,Visual Basic 6.0。

标签: