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
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