在线客服系统

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

时间:2015-08-31 09:46 来源:发表吧 作者:发表吧编辑 点击:
  endif
  closeall
  clearall
  retu
  else&&若连接不成功
  waitwind"对不起,输入参数错误,无法连接sqlserver'
  clearread
  retu
  endif
  (3)、再执行foxpro程序conv_data将数据由.dbf传输到sqlserver表中。
  conv_data.prg程序清单
  conv_data.prg程序清单
  settalkoff
  closeall
  clearall
  clear
  store""todbf_name
  &&dbf_name待转换的.dbf数据库
  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.fabiaoba.com),是一个专门从事期刊推广期刊发表、投稿辅导、发表期刊的网站。
  本站提供如何投稿辅导、发表期刊,寻求论文刊登合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级论文刊登/国家级论文刊登/ CSSCI核心/医学投稿辅导/职称投稿辅导。

投稿邮箱:fabiaoba365@126.com
 在线咨询: 投稿辅导275774677投稿辅导1003180928
 在线咨询: 投稿辅导610071587投稿辅导1003160816
 联系电话:13775259981

其它期刊

联系方式
李老师QQ:发表吧客服610071587 陈老师QQ:发表吧客服275774677 刘老师QQ:发表吧客服1003160816 张老师QQ:发表吧客服1003180928 联系电话:18796993035 投稿邮箱:fabiaoba365@126.com
期刊鉴别
热门期刊
发表吧友情提醒

近来发现有些作者论文投稿存在大量剽窃、抄袭行为,“发表吧”对此类存在大量剽窃、抄袭的论文已经停止编辑、推荐。同时我们也提醒您,当您向“发表吧”投稿时请您一定要保证论文的原创性、唯一性,这既是对您自己负责,更是对他人的尊敬。

此类投稿的论文如果发表之后,对您今后的人生和事业将造成很大的麻烦,后果不堪设想,请您一定要慎重,三思而后行。

如因版权问题引起争议或任何其他原因,“发表吧”不承担任何法律责任,侵权法律责任概由剽窃、抄袭者本人承担。

 
QQ在线咨询
陈老师:275774677
张老师:1003180928
李老师:610071587
刘老师:1003160816
论文刊登热线:
137-7525-9981
微信号咨询:
fabiaoba-com

友情链接

申请链接