栏目分类
系统安全 | 服务器安全 | 网络安全 | 木马病毒 | 漏洞补丁 | 防火墙 | 系统安全 | 备份恢复 | 安全策略
系统优化 | 提速 | 优化性能 | 服务 | 清理垃圾
网络技巧 | 网络命令 | 网络技巧 | 网络访问 | 共享 | 网络管理
服务器技术 | Exchange | FTP服务器 | ISAServer | 域服务器 | Web服务器 | SQLServer | 其他服务器
系统技巧 | 系统管理 | 系统技巧 | 注册表 | 进程
windows新手入门 | 系统基础 | 网络基础 | 安装 | 技术前沿
系统故障 | 网络故障 | 开关机故障 | 系统故障 | 软件故障 | 当机故障
资讯动态
排行榜
·如何修复SQLSERVER数据库"置疑"问题
·SQLServer2000企业版安装教程(二)
·SQLServer2000企业版安装教程(一)
·SQLServer的数据类型介绍
·Delphi与SQLServer存储过程编程详解
·SQLServer2000企业版安装教程(三)
·SQLServerM复制和远程数据访问对比
·SQLServer扩展存储过程实现远程备份与恢复
·如何将DBF数据库转换成SQLServer表
·SQLServer的用户权限管理
·黑客是如何破解MSSQLSERCVER密码的
·PL/SQL开发中动态SQL的使用方法
·SQLServer2000中的触发器使用
·全面接触SQL语法(3)
·全面接触SQL语法(4)
·简单查询和联合查询两方面介绍SQL查询语句
·SQLServer索引结构及其使用(四)
·SQLServer索引结构及其使用(二)
·SQLServer2000汉字数据简繁转换实例
·SQLServer索引结构及其使用(一)

    您现在的位置: Linux宝库 >> Windows >> 服务器技术 >> SQLServer >> 文章正文
如何将DBF数据库转换成SQLServer表
Linux宝库 收集整理  作者:Linux宝库  时间:2007-12-31  收藏本站
来自:http://doc.linuxpk.com/34149.html
联系:linuxmine#gmail.com
分类:[SQLServer]
  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):

  


  


  实现步骤:

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

  


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

  (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)

  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的内容为:

  1 SQLCHAR 0 4 "" 1 Id

  2 SQLCHAR 0 20 "" 2 name

  在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。

  

   本文来自:http://doc.linuxpk.com/34149.html

 
     最新更新
·榨干MSSQLServer最后一滴血
·SQLINJECTION的SQLServer安全设置
·SQLServer数据库的查询优化及分页算法(1)
·SQLServer数据库的查询优化及分页算法(2)
·SQLServer数据库的查询优化及分页算法(3)
·SQLServer2000中生成XML的小技巧
·保护SQLServer:为安全性而安装
·SQLServer2000数据库文件损坏时如何恢复
·SQLServer数据仓库的构建与分析
·SQL的三个主要语句及一点技巧
·SQLServer连接中三个最常见错误原因分析
·SQLServer.net和OLEDB.net连接数据库比较
·SQLService2000的全文搜索的整理
·SQLServer2005中的分区表和索引(1)
·SQLServer2005中的分区表和索引(2)
·SQLServer2005中的分区表和索引(3)
·SQL中两台服务器间使用连接服务器
·SQLServer2000数据库置疑的解决方法
·小技巧:解密SQL2000的存储过程
·SQLServer数据库的备份与恢复
·SQLServer数据库的备份与恢复
·PL/SQL中的多进程通信技术简介
·有孔就入SQLInjection的深入探讨
·SQL高手篇:精妙SQL语句说明介绍
·一个SqlServer数据恢复实例案例
·从MDF文件恢复SqlServer2000数据库
·SQLServer2000之日志传送功能(1)
·SQLServer2000之日志传送功能(2)
·SQLServer2000之日志传送功能(3)
·MSSQLServer2k数据转换服务部署