熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

如何將DBF數據庫轉換成SQL Server表

2013-11-15 14:35:32  來源: SQL Server 

  前言 隨著計算機技術的發展客戶機/服務器(Client/Server)體系結構的數據庫系統應用越來越廣泛而FoxbaseFoxpro是我國近階段使用較廣的數據庫開發軟件很多數據都存在DBF表中本文將介紹如何將DBF表中的數據轉換到SQL Server表中
  
  用Visual Basic編程實現轉換 用Visual Basic編程實現轉換即通過SQL Server提供的ODBC接口(開放數據庫接口)及Visual Basic中應用數據訪問建立Visual Basic與SQL Server的連接由Visual Basic向SQL Server提交創建表命令然後將dbf的每條記錄提交給SQL Server完成數據轉換DBF的數據結構是(exampdbf)
  
 

  實現步驟
  ()在數據庫服務器sqlserver中建立數據庫sqlexample建立一個表example其結構與exampdbf結構相同其結構是
  

   ()ODBC的設置在客戶機上進入Windows的控制面板( Control panel )雙擊ODBC數據源(位)圖標進行數據庫的ODBC驅動設置在用戶DSN下添加選擇SQL Server在名稱輸入sql服務器輸入sqlserver用戶名輸入sa口令輸入測試是否連通
  ()在Visual Basic建立一工程添加引用Microsoft ActiveXData Objects Library和Microsoft DAO object library在Form上建一個Command將Command的Caption改為轉換 程序清單如下
  
  Private Sub Command_Click()
  
  Dim db As Database
  
  Dim tb As Recordset
  
  打開C:exampdbf
  
  Set db=OpenDatabase(c:FalseFalsefoxpro )
  
  Set tb=dbOpenRecordset(examp)
  
  Dim conn As ADODBConnection
  
  Dim cmd As ADODBCommand
  
  Set conn=New ADODBConnection
  
  Set cmd=New ADODBCommand
  
  cons=ODBC;DATABASE=sqlexample;UID=sa;PWD=;DSN=sql
  
  connOpen cons
  
  Set cmdActiveConnection=conn
  
  Do while not tbEOF
  
  Cmds=insert into example values(& tbFields() && tbFields()
  
  &)
  
  cmdCommandText=cmds
  
  cmdExecute
  
  tbMoveNext
  
  Loop
  
  MsgBox載入完畢提示
  
  CnnClose
  
  Unload me
  
  End Sub
  
  使用上述方法只要知道一些簡單的SQL Server操作及Visual Basic編程便可實現將DBF中的數據載入到SQL Server中但存在不足之處如果DBF中數據量很大超過幾十萬條記錄時載入的時間將會很長解決大批量數據載入需要用到SQL Server所提供的塊拷貝實用程序(bcp)
  
  利用SQL Server所提供的塊拷貝實用程序(bcp)載入數據
  實用程序bcpexe可從Mssql目錄下的Binn子目錄下獲得
  
  bcp的命令格式及主要參數
  
  主要參數
  dbtable 數據庫名
  in|out in從文件到數據庫表的拷貝
  out從數據庫表到文件拷貝
  datafile 操作系統文件的路徑
  /f 文件格式
  /u username 指定登錄用戶名
  /P password 指定一個口令
  /S servername 允許用戶指定連接到哪個SQL Server
  
  實現轉換的具體方法 我們將上面的例子調用Bcp將數據載入到SQL Server數據庫中先在目錄下建立一個文件名為examfmt其中examfmt的內容為
  
   SQLCHAR Id
   SQLCHAR name
  在Visual Basic中建立一工程在Form上在Form上建一個Command將Command的Caption改為轉換 程序清單如下
  
  Private Sub Command_Click()
  bcp=bcpexe sqlexampleexample in
  :exampdbf /S sqlserver /U sa
  /P /f examfmt
  ok=Shell(bcp)
  
  End Sub 該方法可以用較短的時間將大量數據載入到SQL Server數據庫中但也有其缺點靈活性較差使用較為繁瑣
  
  使用軟件工具實行數據載入
  應用Visual Basic中的外接程序中的可視化數據管理器(VisData)進行數據加載 實現步驟
  
  ()SQL Server數據庫DBF文件如上
  
  ()在Visual Basic中啟動VisData文件菜單中選擇打開數據庫選擇Foxpro然後打開exampdbf數據庫
  
  ()文件菜單中選擇導入/導出選擇目標數據庫類型ODBC導出進入下一窗口選擇DSN選中sql執行
  
  ()Login ID:欄中輸入登錄用戶名saPassword欄中若有登錄口令則輸入開始進行數據轉換 應用SQL Server中的數據轉換服務(DTS)將數據導入或導出
  
  DTS提供了數據傳送功能例如輸入輸出以及在微軟的SQL Server和任何OLE DBODBC或者文本格式之間傳送數據在SQL Server你可以利用DTS向導把DBF文件的數據傳送到SQL Server數據庫中因為有DTS向導在這不詳細講解了 使用這些方法可以簡單方便快捷完整地將所有dbf中的數據的轉換到SQL Server但也有不便之處必須手工完成操作若要轉換的數據量很大時使用的時間較長
  
  結束語
  以上幾種方法運行環境服務器端網絡操作系統為Window NT 網絡數據庫為SQL Server 客戶機Windows Visual Basic

From:http://tw.wingwit.com/Article/program/SQLServer/201311/22030.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.