Foxpro DBF数据库转换成SQL Server 6.5表的几种方法_第1页
Foxpro DBF数据库转换成SQL Server 6.5表的几种方法_第2页
Foxpro DBF数据库转换成SQL Server 6.5表的几种方法_第3页
Foxpro DBF数据库转换成SQL Server 6.5表的几种方法_第4页
Foxpro DBF数据库转换成SQL Server 6.5表的几种方法_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Foxpro DBF数据库转换成SQL Server 6.5表的几种方法Foxpro DBF数据库转换成SQL Server 6.5表的几种方法 Foxpro DBF数据库转换成SQL Server 6.5表的几种方法 Foxpro DBF数据库转换成SQL Server 6.5表的几种方法 摘要:本文主要介绍用SQL Server bcp、Foxpro编程、Access等方法将.dbf数据库转换到SQL Server表的方法。关键词:Xbase DBF SQL Server 数据库 转换1、前言当今,数据库联网实现数据共享已经成为信息系统建立中一个迅速开展的潮流。利用SQL Server、O

2、racal、Sybase等客户机/效劳器Client/Server体系构造的数据库系统进展信息系统的开发、更新改造已成为当前一大趋势。而Dbase、Foxbase、Foxpro是我国近年应用较为广泛的数据库开发软件,许多单位、部门多年来积累了大量的珍贵的数据资料,这些部门在进展计算机信息系统改造、更新的同时,面临如何继承大量历史数据的问题,本文介绍三种将DBF数据转换成SQL Server表的方法。2、利用SQL Server所提供的块拷贝实用程序bcp转换实用程序bcp.exe可从效劳器SQL目录下的BINN子目录下获得。2.1、bcp的 命令格式及主要参数bcp database_name

3、.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操作系统文件的途径。该途径的长度可以是1255个字符。也可指明磁盘驱动器名字。/C 用字符类型作为缺省值执行拷贝操作。/u login

4、_ID 指定登录标识符。/P password 允许指定一个口令。/S servername 允许用户指定连接到哪个SQL Server2.2、实现转换的详细方法我们以Foxpro的数据库构造的单位职工库zg.dbf为例,进展数据转换。其数据构造为:字段名 类型 字段长度 小数点位数 字段内容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为单位职工库创立

5、一个数据库设备zg.dat,然后在该设备上建立zg数据库及表(Table),表的数据构造要与zg.dbf的数据构造一致。或用以下SQL Server命令创立设备和创立表。A、创立数据设备disk initname='zg'数据库设备名physname='c:zgzg.dat' 数据库文件所在途径vdevno=8数据库设备的标识号size=5120数据库设备大小(10M)B、建立zg表use zg_datacreate table zg ( bh char(4) null, xm char(8) null, xb char(2) null, nl int null

6、, zw char(10) null,gzsj datatime null, jl text null, zp image null ) 建立表go(2)、在客户机上启动Foxpro,用USE命令翻开需转换的.dbf文件,用COPY命令将.dbf文件中数据转换成标准的文本文件.txt,命令如下:use zg.dbfcopy all to zg.txt deli with blan(3)、从客户机登录到Windows NT效劳器上,将zg.txt文件拷贝到效劳器的职工库目录c:zg下。(4)、在效劳器上,由Windows NT进入到MS-DOS状态,然后执行bcp将数据从zg.txt转换到SQL

7、表,命令格式如下:bcp zg in zg.txt /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接口开放数据库接口及Foxp

8、r提供ODBC接口工具Connectivity Kit fpsql.fll,建立SQL与Foxpro的连接,由Foxpro向SQL Server提交创立表命令,然后将.dbf的每条记录,串成一个字符串,将插入命令连同字符串提交给SQL Server,完成数据转换。实现步骤:(1)、ODBC的设置:在客户机上启动Windows for group,进入Windows的控制面板( Control panel )。双击ODBC图标,进展zg数据库的ODBC驱动设置。选择"Add"增加新的ODBC驱动接口,在Install ODBC drivers项选择"SQL Serv

9、er",按"OK",弹出"ODBC SQL Server Setup"窗口,在 Data source name项中输入"zg_data",Server项输入"mainserver",按"OK"完成设置。(2)、采用上述方法一中步骤1的、创立zg数据库设备及数据库,然后执行Foxpro程序crea_table,创立一个构造与.dbf构造一样的SQL Server表。程序清单如下:crea_table.prg 程序清单set talk offclose allclear allclear

10、store "" to dbf_name dbf_name 待转换的.dbf数据库store "" to sql_db sql_db目的SQL数据库store "" to sql_com sql_com向SQL Server提交的命令store "" to sql_title sql_title 为向SQL Server提交命令字头store 0 to handle handle 为Foxpro与SQL Server连接的标识store 0 to success success为命令提交成功与否的标识set lib

11、r to fpsql.fll2,20 say "请输入要转换的数据库(dbf)名:" get dbf_name3,20 say "请输入目的SQL数据库名:" get sql_dbreaddbf_name=allt(dbf_name)sql_db=allt(sql_db)handle=dbconnect(sql_db, "sa","") 建立Foxpro与SQL Server连接if handle0 假设连接成功那么use dbf_name as op_dbf in 0以op_dbf为别名翻开待转换数据库sele

12、op_dbfcopy to db_stru stru exte 将其数据构造拷贝生成db_stru库use db_stru in 0sele db_strugoto topsql_com="creat table "+dbf_name+"( "do while .not. eof()sql_com=sql_com+field_name+" "do casecase field_type="C"sql_com=sql_com+"char ("+;allt(str(field_len)+ "

13、;)"case field_type="N"if field_dec=0if field_len8sql_com=sql_com+"int "elsesql_com=aql_com+"float "endifelsesql_com=sql_com+"float "endifcase field_type="D"sql_com=sql_com+"datatime "case field_type="M"sql_com=sql_com+"t

14、ext "case field_type="G"sql_com=sql_com+"binary "endcaseskipif .not.eof()sql_com=sql_com+","endifenddosql_com=aql_com+" )"success=dbexec(handle,sql_com)if successwait wind "SQL Server表已建立成功! "elsewait wind "SQL Server表建立失败! "endifclose

15、 allclear allretuelse 假设连接不成功wait wind "对不起,输入参数错误,无法连接SQL Server'clear readretuendif(3)、再执行Foxpro程序conv_data将数据由.dbf传输到SQL Server表中。conv_data.prg 程序清单conv_data.prg 程序清单set talk offclose allclear allclearstore "" to dbf_namedbf_name待转换的.dbf数据库store "" to sql_dbsql_db目的SQ

16、L数据库store "" to sql_comsql_com向SQL Server提交的命令store "" to fnamefname字段名store 0 to handlehandle Foxpro与SQL Server连接的标识store 0 to successsuccess命令提交成功与否的标识set libr to fpsql.fll2,20 say "请输入要转换的数据库(dbf)名:" get dbf_name3,20 say "请输入目的SQL数据库名:" get sql_dbreaddbf_na

17、me=allt(dbf_name)sql_db=allt(sql_db)handle=dbconnect(sql_db, "sa","")建立Foxpro与SQL Server连接if handle0 假设连接成功那么use dbf_name as op_dbf in 0以op_dbf为别名翻开待转换数据库sele op_dbfcopy to db_stru stru exte将其数据构造拷贝生成db_stru库use db_stru in 0sele db_strugoto topsql_title="insert into "+d

18、bf_name+" ( "do while .not.eof()sql_title=sql_title+field_nameskipif .not.eof()sql_title=sql_title+","elsesql_title=sql_title+" ) values ('"endifenddosele op_dbfgoto topdo while .not.eof()sql_com=sql_titlesele db_strugoto topdo while .not.eof()fname=field_namedo cas

19、ecase field_type="C"sql_com=sql_com+fnamecase field_type="N"sql_com=sql_com+"convert(int(8),'"+str(*fname)+"')"case field_type="M"sql_com=sql_com+'null'case field_type="G"sql_com=sql_com+'null'endcaseskipif .not.eof(

20、)sql_com=sql_com+"','"elsesql_com=aql_com+"')"endifenddosuccess=dbexec(handle,sql_com)sele op_dbfskipenddoelse 假设连接不成功wait wind "对不起,输入参数错误,无法连接SQL Server"clear readretuendif使用上述方法,只要知道一些简单的SQL Server操作及Foxpro编程便可实现将.dbf数据转换到SQL Server。运行程序然后输入待转换的数据库名,及目的数据

21、库名就可实现转换,快捷方便。但缺乏的是,该方法在原数据库.dbf含有Memo、General字段时,转换就比较困难,目前尚没有找到有效的解决方法。4、用第三方数据库软件Access进展转换Access是Microsoft公司的数据库开发软件,使用Access提供的数据输入Inport/输出Export的功能及ODBC接口,可直接将数据构造及数据转送到SQL Server。实现步骤:(2)、然后在Windows for Workgroup中启动Access,在File菜单中选择"new"创立一个新的Access数据库,然后在File菜单中选择"Attach tabl

22、e"连接zg.dbf数据库。(3)、在"Attach"窗口的"Data source"栏中选择数据库源为Foxpro 2.5,按"OK",之后弹出"Select Microsoft Access Database"窗口,在该窗口选择要转换的.dbf数据库zg.dbf,按"OK"完毕,然后按"Close"完成数据库连接。(4)、在File菜单中选择"Export"输出数据,在"Export"窗口选择目的数据库类型"SQL Server"按"OK"进入下一窗口"Select Microsoft Access Object",在"Object in DB1"栏选择要转换的数据库zg, 在窗口的"View"栏下选择"Table"项,按"OK"。(5)、进入"Export"窗口,在"Export zg to"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论