你好,欢迎来到! 设为首页 收藏本站
联系电话
论文范文 当前位置: > 写作指南 > 论文范文 >

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

时间:2015-08-31 09:47来源:核心期刊网 作者:核心期刊网 点击:
storetosql_db sql_db目的sql数据库 storetosql_com sql_com向sqlserver提交的命令 storetofname fname字段名 store0tohandle handlefoxpro与sqlserver连接的标识 store0tosuccess success命令提交成功与否的标识 s
  store""tosql_db
  &&sql_db目的sql数据库
  store""tosql_com
  &&sql_com向sqlserver提交的命令
  store""tofname
  &&fname字段名
  store0tohandle
  &&handlefoxpro与sqlserver连接的标识
  store0tosuccess
  &&success命令提交成功与否的标识
  setlibrtofpsql.fll
  @2,20say"请输入要转换的数据库(dbf)名:"getdbf_name
  @3,20say"请输入目的sql数据库名:"getsql_db
  read
  dbf_name=allt(dbf_name)
  sql_db=allt(sql_db)
  handle=dbconnect(sql_db,"sa","")
  &&建立foxpro与sqlserver连接
  ifhandle>0&&若连接成功则
  use&dbf_nameasop_dbfin0
  &&以op_dbf为别名打开待转换数据库
  seleop_dbf
  copytodb_strustruexte
  &&将其数据结构拷贝生成db_stru库
  usedb_struin0
  seledb_stru
  gototop
  sql_title="insertinto"+dbf_name+"("
  dowhile.not.eof()
  sql_title=sql_title+field_name
  skip
  if.not.eof()
  sql_title=sql_title+","
  else
  sql_title=sql_title+")values('"
  endif
  enddo
  seleop_dbf
  gototop
  dowhile.not.eof()
  sql_com=sql_title
  seledb_stru
  gototop
  dowhile.not.eof()
  fname=field_name
  docase
  casefield_type="c"
  sql_com=sql_com+&fname
  casefield_type="n"
  sql_com=sql_com+"convert(int(8),'"+str(*fname)+"')"
  casefield_type="m"
  sql_com=sql_com+'null'
  casefield_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)
  seleop_dbf
  skip
  enddo
  else&&若连接不成功
  waitwind"对不起,输入参数错误,无法连接sqlserver"
  clearread
  retu
  endif
  使用上述方法,只要知道一些简单的sqlserver操作及foxpro编程便可实现将.dbf数据转换到sqlserver。运行程序然后输入待转换的数据库名,及目的数据库名就可实现转换,快捷方便。但不足的是,该方法在原数据库.dbf含有memo、general字段时,转换就比较困难,目前尚没有找到有效的解决方法。
  4、用第三方数据库软件access进行转换
  access是microsoft公司的数据库开发软件,使用access提供的数据输入(inport)/输出(export)的功能及odbc接口,可直接将数据结构及数据转送到sqlserver。
  实现步骤:
  (1)、按方法二中的第1、2步骤完成数据库设备、数据库创建和odbc接口的设置。
  (2)、然后在windowsforworkgroup中启动access,在file菜单中选择"new"创建一个新的access数据库,然后在file菜单中选择"attachtable"连接zg.dbf数据库。
  (3)、在"attach"窗口的"datasource"栏中选择数据库源为foxpro2.5,按"ok",之后弹出"selectmicrosoftaccessdatabase"窗口,在该窗口选择要转换的.dbf数据库zg.dbf,按"ok"结束,然后按"close"完成数据库连接。
  (4)、在file菜单中选择"export"输出数据,在"export"窗口选择目标数据库类型"<sqlserver>"按"ok"进入下一窗口"selectmicrosoftaccessobject",在"objectindb1"栏选择要转换的数据库zg,在窗口的"view"栏下选择"table"项,,按"ok"。
  (5)、进入"export"窗口,在"exportzgto"栏目下输入目的数据库名zg,按"ok"。进入"sqldatasources"窗口,在"selectdatasource",选择在odbc中定义好的zg数据源,按"ok"
  (6)、进入"sqlserverlogin"窗口,在"loginid:"栏中输入登录用户名"sa",在"password"栏中若有登录口令则输入口令。否则按"ok"开始进行数据转换。
  使用该方法用户不需要深入了解foxpro命令及sqlserver命令,也不须深入了解access操作,更不需对.dbf数据库的数据结构进行分析,access可根据原.dbf数据库的结构自动在sqlserver上创建一个结构相同的表,并且可将原.dbf数据库中不论是字符型、数字型、日期型、memo型、general型的所有数据转换到sqlserver表中。该方法可以简单、方便快捷、完整地将所有.dbf中的数据的转换到sqlserver。
  但使用该方法要注意一点,若要转换的数据量很大时,sqlserver中分配给该数据库的日志设备要足够大,或可在sqlserver中的isql/w命令窗口中用以下命令进行监控,并及时清除。
  dbccsqlperf(logspace)检查事务日志空间的使用量
  dumptransactionzgwithtruncate_only清除事务日志中已完成任务的数据
  5、结束语
  以上三种方法运行环境服务器端网络操作系统为windownt4.0,网络数据库为sqlserver6.5,客户机windows95,foxproforwindow2.6,access97。
  方法二、方法三均通过odbc数据接口进行数据转换。因此,这两种方法对oracal、sybase等数据库也可适用,只要对windows中的odbc数据接口设置作些改动,我们也可将.dbf的数据转换到oracal或sybase的表中。以此类推,只要数据库提供了odbc功能,使用上述方法二、方法三均可实现两种数据库之间的数据转换。


  核心期刊网(www.hexinqk.com)秉承“诚以为基,信以为本”的宗旨,为广大学者老师提供投稿辅导、写作指导、核心期刊推荐等服务。
  核心期刊网专业期刊发表机构,为学术研究工作者解决北大核心CSSCI核心统计源核心EI核心等投稿辅导咨询与写作指导的问题。

  投稿辅导咨询电话:18915033935
  投稿辅导客服QQ: 论文投稿1002080872 论文投稿1003158336
  投稿辅导投稿邮箱:1003158336@qq.com
------分隔线----------------------------
栏目列表  
推荐论文  
热点论文  
 
QQ在线咨询
投稿辅导热线:
189-1503-3935
微信号咨询:
18915033935
网站简介 核刊总览 普刊专栏 期刊验证 学术答疑 服务流程 写作指南 支付方式 信用说明 联系我们
CopyRight © 2013 All Rights Reserved.
免责声明:本站提供投稿辅导 论文投稿 投稿辅导 核心期刊检索 核心投稿辅导等服务,本站刊载文章仅代表作者观点
并不意味着本站认同,部分作品系转载,版权归原作者或相应的机构;若某篇作品侵犯您的权利,请来信告知:1003158336@qq.com