FoxproDBF数据库转换成SQLServer6.5表的几种方法

进修社 人气:1.62W

摘要:本文主要介绍用sql server bcp、foxpro编程、access等方法将数据库转换到sql server表的方法。

FoxproDBF数据库转换成SQLServer6.5表的几种方法

关键词:xbase dbf sql server 数据库 转换

1、前言

当今,数据库联网实现数据共享已经成为信息系统建设中一个迅速发展的潮流。利用sql server、oracal、sybase等客户机/服务器(client/server)体系结构的数据库系统进行信息系统的开发、更新改造已成为当前一大趋势。而dbase、foxbase、foxpro是我国近年应用较为广泛的数据库开发软件,许多单位、部门多年来积累了大量的宝贵的数据资料,这些部门在进行计算机信息系统改造、更新的同时,面临如何继承大量历史数据的问题,本文介绍三种将dbf数据转换成sql server表的方法。

2、利用sql server所提供的块拷贝实用程序(bcp)转换

实用程序可从服务器sql目录下的binn子目录下获得。

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

bcp [[database_name.]owner.] table_name {in|out} datafile [/m maxerror ][/f formatfile] [/e errfile] [/n] [/c] [/t] field_term] [/r row_term] [/u login_id] [/p password] [/s servername] [/v version] [/a packet_size]
主要参数:
database_name 数据库名
in|out in从文件到数据库表的拷贝。
out从数据库表到文件拷贝。
datafile 操作系统文件的'路径。该路径的长度可以是
1-255个字符。也可指明磁盘驱动器名字。
/c 用字符类型作为缺省值执行拷贝操作。
/u login_id 指定登录标识符。
/p password 允许指定一个口令。
/s servername 允许用户指定连接到哪个sql server

2.2、实现转换的具体方法

我们以foxpro的数据库结构的单位职工库()为例,进行数据转换。其数据结构为:

字段名 类型 字段长度 小数点位数 字段内容
bh c 4 职工编号
xm c 8 职工姓名
xb c 2 性别
nl n 2 0 年龄
zw c 10 职务
gzsj d 参加工作时间
jl m 简历
zp g 照片

实现步骤:

(1)、启动服务器,进入window nt,sql server 6.0,打开sql enterprise manager为单位职工库创建一个数据库设备,然后在该设备上建立zg数据库及表(table),表的数据结构要与的数据结构一致。或用以下sql server命令创建设备和创建表。

a、创建数据设备
disk init
name='zg' 数据库设备名
physname='c:zg' 数据库文件所在路径
vdevno=8 数据库设备的标识号
size=5120 数据库设备大小(10m)

b、建立zg表
create database zg_data on zg=1024,log on zg=1024 建立数据库
use zg_data
create table zg ( bh char (4) null, xm char (8) null, xb char (2) null, nl int null, zw char (10) null,gzsj datatime null, jl text null, zp image null ) 建立表
go

(2)、在客户机上启动foxpro,用use命令打开需转换的文件,用copy命令将文件中数据转换成标准的文本文件,命令如下:
use
copy all to deli with blan

(3)、从客户机登录到windows nt服务器上,将文件拷贝到服务器的职工库目录c:zg下。

(4)、在服务器上,由windows nt进入到ms-dos状态,然后执行bcp将数据从转换到sql表,命令格式如下:

bcp zg in /c /s mainserver /u manager /p 0001 (mainserver为服务器名,manager为用户名,0001为用户口令)。

该转换方法速度较快,不占用服务器上事务日志空间。但较为复杂、繁锁,操作者必须熟练掌握foxpro、sql server的命令和操作,而且无法将foxpro的memo、general字段转换到sql server表。

3、用foxpro for window 2.5 编程实现转换

"用foxpro编程实现数据转换"即通过sql server提供的odbc接口(开放数据库接口)及foxpr提供odbc接口工具connectivity kit (),建立sql与foxpro的连接,由foxpro向sql server提交创建表命令,然后将的每条记录,串成一个字符串,将插入命令连同字符串提交给sql server,完成数据转换。