將DBF數(shù)據(jù)庫(kù)轉(zhuǎn)換成SQLServer表

字號(hào):

1、前言 隨著計(jì)算機(jī)技術(shù)的發(fā)展,客戶機(jī)/服務(wù)器(Client/Server)體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用越來(lái)越廣泛,而Foxbase、Foxpro是我國(guó)近階段使用較廣的數(shù)據(jù)庫(kù)開(kāi)發(fā)軟件,很多數(shù)據(jù)都存在DBF表中,本文將介紹如何將DBF表中的數(shù)據(jù)轉(zhuǎn)換到SQL Server表中。
    2、用Visual Basic編程實(shí)現(xiàn)轉(zhuǎn)換 用Visual Basic編程實(shí)現(xiàn)轉(zhuǎn)換,即通過(guò)SQL Server提供的ODBC接口(開(kāi)放數(shù)據(jù)庫(kù)接口)及Visual Basic中應(yīng)用數(shù)據(jù)訪問(wèn),建立Visual Basic與SQL Server的連接,由Visual Basic向SQL Server提交創(chuàng)建表命令,然后將.dbf的每條記錄提交給SQL Server,完成數(shù)據(jù)轉(zhuǎn)換。DBF的數(shù)據(jù)結(jié)構(gòu)是(examp1.dbf): 字段名類型字段長(zhǎng)度字段內(nèi)容
    Id C 4貨物編號(hào)
    name C 20貨物名稱
    實(shí)現(xiàn)步驟:
    (1)在數(shù)據(jù)庫(kù)服務(wù)器”sqlserver1”中建立數(shù)據(jù)庫(kù)sqlexample,建立一個(gè)表”example1”,其結(jié)構(gòu)與examp1.dbf結(jié)構(gòu)相同。其結(jié)構(gòu)是: 字段名類型字段長(zhǎng)度字段內(nèi)容
    Id C 4貨物編號(hào)
    name C 20貨物名稱
    (2)、ODBC的設(shè)置:在客戶機(jī)上進(jìn)入Windows的控制面板( Control panel )。雙擊ODBC數(shù)據(jù)源(32位)圖標(biāo),進(jìn)行數(shù)據(jù)庫(kù)的ODBC驅(qū)動(dòng)設(shè)置。在用戶DSN下,按“添加”,選擇SQL Server,在名稱輸入”sql1”,服務(wù)器輸入”sqlserver1”,用戶名輸入”sa”,口令輸入”123456”,測(cè)試是否連通。
    (3)、在Visual Basic建立一工程,添加“引用”Microsoft ActiveXData Objects2.1 Library和Microsoft DAO 3.51 object library。在Form1上建一個(gè)Command1,將Command1的Caption改為轉(zhuǎn)換。程序清單如下:
    Private Sub Command1_Click()
    Dim db As Database
    Dim tb As Recordset
    ‘打開(kāi)C:examp1.dbf
    Set db=OpenDatabase(c:,False,False,”foxpro 2.5”)
    Set tb=db.OpenRecordset(examp1)
    Dim conn1 As ADODB.Connection
    Dim cmd1 As ADODB.Command
    Set conn1=New ADODB.Connection
    Set cmd1=New ADODB.Command
    cons1=”O(jiān)DBC;DATABASE=sqlexample;UID=sa;PWD=123456;DSN=sql1”
    conn1.Open cons1
    Set cmd1.ActiveConnection=conn1
    Do while not tb.EOF
    Cmds1=”insert into example1 values(‘“& tb.Fields(0) &”’,‘“& tb.Fields(1)
    &”’)”
    cmd1.CommandText=cmds1
    cmd1.Execute
    tb.MoveNext
    Loop
    MsgBox“載入完畢”,,”提示”
    Cnn1.Close
    Unload me
    End Sub