首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

DBF 轉 SQL Server 完整教學:VB + ADO/DAO 程式碼與 BCP 大量匯入

     編輯:關於SqlServer

環境準備

  • SQL Server 建立目標資料庫與表,結構對應 DBF 欄位。
  • 客戶端 ODBC 設定 System DSN 指向 SQL Server (驅動程式:SQL Server,帳號 sa)。
  • VB 專案參考:Microsoft ActiveX Data Objects 2.1 Library、Microsoft DAO 3.51 Object Library。

VB 程式碼核心 (逐筆 INSERT)

Private Sub Command1_Click()
    Dim db As DAO.Database, rs As DAO.Recordset
    Set db = OpenDatabase("C:\", False, False, "FoxPro 2.5")
    Set rs = db.OpenRecordset("examp1")

    Dim conn As ADODB.Connection, cmd As ADODB.Command
    Set conn = New ADODB.Connection
    Set cmd = New ADODB.Command
    conn.Open "ODBC;DATABASE=sqlexample;UID=sa;PWD=123456;DSN=sql1"
    Set cmd.ActiveConnection = conn

    Do While Not rs.EOF
        cmd.CommandText = "INSERT INTO example1 VALUES ('" & rs.Fields(0) & "', '" & rs.Fields(1) & "')"
        cmd.Execute
        rs.MoveNext
    Loop

    MsgBox "載入完畢"
    conn.Close
End Sub

大量資料優化:BCP 工具

逐筆 INSERT 速度極慢。大量資料請使用 bcp:

-- 1. DBF 轉文字檔 (可用 VFP/Excel/工具匯出 CSV)
-- 2. BCP 匯入
bcp sqlexample.dbo.example1 IN data.txt -c -t, -S server -U sa -P pwd

參數:-c 字元模式、-t, 欄位分隔符、-S 伺服器、-U/-P 認證。

替代方案

  • SQL Server 匯入/匯出精靈 (DTS/SSIS) 直接讀取 DBF (需 OLE DB Provider for Visual FoxPro)。
  • Linked Server + OPENROWSET 直接查詢 DBF。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved