首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心理工论文信息技术

上一页  [1] [2] 


Tags:


   FoxproDBF数据库转换成SQLServer6.5表的几种方法      ★★★ 【字体: 】  
FoxproDBF数据库转换成SQLServer6.5表的几种方法
收集整理:佚名    来源:本站整理  时间:2009-01-10 15:18:19   点击数:[]    

fpsql.fll
@2,20 say 请输入要转换的数据库(dbf)名: get dbf_name
@3,20 say 请输入目的SQL数据库名: get sql_db
read
dbf_name=allt(dbf_name)
sql_db=allt(sql_db)
handle=dbconnect(sql_db, sa,)  
&& 建立Foxpro与SQL Server连接
if handle>0   && 若连接成功则
use &dbf_name as op_dbf in 0
&&以op_dbf为别名打开待转换数据库
sele op_dbf
copy to db_stru stru exte
&& 将其数据结构拷贝生成db_stru库
use db_stru in 0
sele db_stru
goto top
sql_com=creat table +dbf_name+(
do while .not. eof()
sql_com=sql_com+field_name+
do case
case field_type=C
sql_com=sql_com+char (+;
allt(str(field_len))+ )
case field_type=N
if field_dec=0
if field_len0   && 若连接成功则
use &dbf_name as op_dbf in 0
&&以op_dbf为别名打开待转换数据库
sele op_dbf
copy to db_stru stru exte
&&将其数据结构拷贝生成db_stru库
use db_stru in 0
sele db_stru
goto top
sql_title=insert into +dbf_name+ (
do while .not.eof()
sql_title=sql_title+field_name
skip
if .not.eof()
  sql_title=sql_title+,
else
  sql_title=sql_title+ ) values (
endif
enddo
sele op_dbf
goto top
do while .not.eof()
sql_com=sql_title
sele db_stru
goto top
do while .not.eof()
  fname=field_name
  do case
  case field_type=C
    sql_com=sql_com+&fname
  case 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
  endcase
  skip
  if .not.eof()
  sql_com=sql_com+,
  else
  sql_com=aql_com+)
  endif
enddo
success=dbexec(handle,sql_com)
sele op_dbf
skip
enddo
else   && 若连接不成功
wait wind 对不起,输入参数错误,无法连接SQL Server
clear read
retu  
endif

使用上述方法,只要知道一些简单的SQL Server操作及Foxpro编程便可实现将.dbf数据转换到SQL Server。运行程序然后输入待转换的数据库名,及目的数据库名就可实现转换,快捷方便。但不足的是,该方法在原数据库.dbf含有Memo、General字段时,转换就比较困难,目前尚没有找到有效的解决方法。

4、用第三方数据库软件Access进行转换

Access是Microsoft公司的数据库开发软件,使用Access提供的数据输入(Inport)/输出(Export)的功能及ODBC接口,可直接将数据结构及数据转送到SQL Server。
实现步骤:

(1)、按方法二中的第1、2步骤完成数据库设备、数据库创建和ODBC接口的设置。

(2)、然后在Windows for Workgroup中启动Access,在File菜单中选择new创建一个新的Access数据库,然后在File菜单中选择Attach table连接zg.dbf数据库。

(3)、在Attach窗口的Data source栏中选择数据库源为Foxpro 2.5,按OK,之后弹出Select Microsoft Access Database窗口,在该窗口选择要转换的.dbf数据库zg.dbf,按OK结束,然后按Close完成数据库连接。

(4)、在File菜单中选择Export输出数据,在Export窗口选择目标数据库类型按OK进入下一窗口Select Microsoft Access Object,在Object in DB1栏选择要转换的数据库zg, 在窗口的View栏下选择Table项,,按OK。

(5)、进入Export窗口,在Export zg to栏目下输入目的数据库名zg,按OK。进入SQL Data Sources窗口,在Select Data Source,选择在ODBC中定义好的zg数据源,按OK

(6)、进入SQL Server login窗口,在Login ID:栏中输入登录用户名sa,在Password栏中若有登录口令则输入口令。否则按OK开始进行数据转换。

使用该方法用户不需要深入了解Foxpro命令及SQL Server命令,也不须深入了解Access操作,更不需对.dbf数据库的数据结构进行分析,Access可根据原.dbf数据库的结构自动在SQL Server上创建一个结构相同的表,并且可将原.dbf数据库中不论是字符型、数字型、日期型、Memo型、General型的所有数据转换到SQL Server表中。该方法可以简单、方便快捷、完整地将所有.dbf中的数据的转换到SQL Server。

但使用该方法要注意一点,若要转换的数据量很大时,SQL Server中分配给该数据库的日志设备要足够大,或可在SQL Server中的ISQL/w命令窗口中用以下命令进行监控,并及时清除。

dbcc sqlperf (logspace) 检查事务日志空间的使用量
dump transaction zg with truncate_only 清除事务日志中已完成任务的数据

5、结束语

以上三种方法运行环境服务器端网络操作系统为Window NT 4.0,网络数据库为SQL Server 6.5,客户机Windows 95,Foxpro for Window 2.6,Access 97。

方法二、方法三均通过ODBC数据接口进行数据转换。因此,这两种方法对Oracal、Sybase等数据库也可适用,只要对Windows中的ODBC数据接口设置作些改动,我们也可将.dbf的数据转换到Oracal或Sybase的表中。以此类推,只要数据库提供了ODBC功能,使用上述方法二、方法三均可实现两种数据库之间的数据转换。

文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:CRC校验实用程序库

  • 下一篇文章:基于CORBA的电子商务系统的安全性
  • 返回上一页】【打 印】【关闭窗口
    中查找“FoxproDBF数据库转换成SQLServer6.5表的几种方法”更多相关内容 5VAR论文频道
    中查找“FoxproDBF数据库转换成SQLServer6.5表的几种方法”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››基于Cosmos的包装容器跌落试验的开...
  • ››日产100吨抄纸车间工艺设计分析
  • ››SDH网络规划与设计的案例分析
  • ››装饰原纸增湿強及再制浆工艺的设计...
  • ››基于网络印刷色彩再现技术的创新分...
  • ››图象序列中的运动检测技术的开发分...
  • ››体温测量仪设计系统的分析
  • ››通用视频编解码平台系统的问题和策...
  • ››页面在线设计系统的问题和策略分析...
  • ››微粒助留助滤体系用于废纸制浆造纸...
  • ››FoxproDBF数据库转换成SQLServer6....
  • ››Foxpro DBF数据库转换成SQL Server...
  • ››FoxPro for Windows 远程拨号通讯功...
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .