中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      計算機畢業論文-Foxpro DBF數據庫轉換成SQL Server 6

      時間:2024-09-07 20:50:39 計算機畢業論文 我要投稿
      • 相關推薦

      計算機畢業論文-Foxpro DBF數據庫轉換成SQL Server 6.5表的幾種

      摘要:本文主要介紹用SQL Server bcp、Foxpro編程、Access等方法將.dbf數據庫轉換到SQL Server表的方法。

      關鍵詞:Xbase DBF SQL Server 數據庫 轉換

      1、前言

      當今,數據庫聯網實現數據共享已經成為信息系統建設中一個迅速發展的潮流。利用SQL Server、Oracal、Sybase等客戶機/服務器(Client/Server)體系結構的數據庫系統進行信息系統的開發、更新改造已成為當前一大趨勢。而Dbase、Foxbase、Foxpro是我國近年應用較為廣泛的數據庫開發軟件,許多單位、部門多年來積累了大量的寶貴的數據資料,這些部門在進行計算機信息系統改造、更新的同時,面臨如何繼承大量歷史數據的問題,本文介紹三種將DBF數據轉換成SQL Server表的方法。

      2、利用SQL Server所提供的塊拷貝實用程序(bcp)轉換

      實用程序bcp.exe可從服務器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的數據庫結構的單位職工庫(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為單位職工庫創建一個數據庫設備zg.dat,然后在該設備上建立zg數據庫及表(Table),表的數據結構要與zg.dbf的數據結構一致。或用以下SQL Server命令創建設備和創建表。

      A、創建數據設備
      disk init
      name='zg'                     數據庫設備名
      physname='c:\\zg\\zg.dat'    數據庫文件所在路徑
      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命令打開需轉換的.dbf文件,用COPY命令將.dbf文件中數據轉換成標準的文本文件.txt,命令如下:
      use zg.dbf
      copy all to zg.txt deli with blan

      (3)、從客戶機登錄到Windows NT服務器上,將zg.txt文件拷貝到服務器的職工庫目錄c:\\zg下。

      (4)、在服務器上,由Windows NT進入到MS-DOS狀態,然后執行bcp將數據從zg.txt轉換到SQL表,命令格式如下:

      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接口(開放數據庫接口)及Foxpr提供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 Server",按"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 off
      close all
      clear all
      clear
      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 libr to 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_len<8 
      sql_com=sql_com+"int "
      else
      sql_com=aql_com+"float "
      endif
      else
              sql_com=sql_com+"float "
      endif
      case field_type="D"
      sql_com=sql_com+"datatime "
      case field_type="M"
      sql_com=sql_com+"text "
      case field_type="G"
      sql_com=sql_com+"binary "
      endcase
      skip
      if .not.eof()
      sql_com=sql_com+","
      endif
      enddo
      sql_com=aql_com+" )"
      success=dbexec(handle,sql_com)
      if success
      wait wind "SQL Server表已建立成功! "
      else
      wait wind "SQL Server表建立失敗! "
      endif
      close all
      clear all
      retu
      else    && 若連接不成功
      wait wind "對不起,輸入參數錯誤,無法連接SQL Server'
      clear read
      retu    
      endif

      (3)、再執行Foxpro程序conv_data將數據由.dbf傳輸到SQL Server表中。

      conv_data.prg 程序清單

      conv_data.prg 程序清單
      set talk off
      close all
      clear all
      clear
      store "" to dbf_name    
      &&dbf_name待轉換的.dbf數據庫
      store "" to sql_db    
      &&sql_db目的SQL數據庫
      store "" to sql_com    
      &&sql_com向SQL Server提交的命令
      store "" to fname        
      &&fname字段名
      store 0 to handle        
      &&handle Foxpro與SQL Server連接的標識
      store 0 to success    
      &&success命令提交成功與否的標識
      set libr to 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_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"窗口選擇目標數據庫類型"<SQL Server>"按"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功能,使用上述方法二、方法三均可實現兩種數據庫之間的數據轉換。 

      作者:范平川、羅春梅 

      【計算機畢業論文-Foxpro DBF數據庫轉換成SQL Server 6】相關文章:

      Foxpro DBF數據庫轉換成SQL Server 6.5表的幾種方法03-20

      SQL Server數據庫安全監控系統的設計與實現03-26

      開發基于SQL SERVER 的C/S數據庫應用系統?03-18

      SQL Server的系統表及其應用研究03-06

      基于Web數據庫的信息發布系統JSP+SQL03-08

      WEB索引數據庫的設計和實現SQL+VC++03-30

      FoxproDBF數據庫轉換成SQLServer6.5表的幾種方法03-18

      計算機專業學習助手TOMCAT+SQL11-23

      計算機數據庫論文07-21

      主站蜘蛛池模板: 日本久久久精品国产一区| 国产亚洲av天天在线观看| 河间市| 国产一区二区三区视频大全| 亚洲亚洲亚洲亚洲亚洲天堂| 国产亚洲AV片a区二区| 97人妻蜜臀中文字幕| 久久av一区二区三区播放| 日韩精品极品视频在线免费| 伊人亚洲综合影院首页| 常山县| 国产精品一卡二卡三卡| 亚洲大片中文字幕久久| 日本久久一区二区三区高清| av手机在线天堂网| 国产天堂av手机在线| 久久精品国产亚洲av麻豆四虎| 精品亚洲一区二区三区| 湟源县| 国产av一区二区三区东北熟女 | 久久精品国产热久久精品国产亚洲| 台南市| 欧美精品日韩一区二区三区| 日本特黄a级高清免费大片| 会宁县| 亚洲人成绝费网站色www| 国产人妖赵恩静在线视频| 婷婷一区二区三区在线| 谢通门县| 开心五月婷婷综合网站| 亚洲AV秘 无码一区二区在线| 亚洲专区中文在线第一页| 亚洲爆码一区二区三区| 天堂视频一区二区免费在线观看| 日产精品一区二区三区免费| 成人精品毛片在线观看| 免费 无码 国产精品| 日韩av一区二区三区四区av| 龙井市| 西青区| 亚洲国产成人精品毛片九色|