前言 隨著計算機技術的發展
客戶機/服務器(Client/Server)體系結構的數據庫系統應用越來越廣泛
而Foxbase
Foxpro是我國近階段使用較廣的數據庫開發軟件
很多數據都存在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的數據結構是(examp
dbf)
實現步驟 (
)在數據庫服務器
sqlserver
中建立數據庫sqlexample
建立一個表
example
其結構與examp
dbf結構相同
其結構是
(
)
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:examp
dbf
Set db=OpenDatabase(c:
False
False
foxpro
)
Set tb=db
OpenRecordset(examp
)
Dim conn
As ADODB
Connection
Dim cmd
As ADODB
Command
Set conn
=New ADODB
Connection
Set cmd
=New ADODB
Command
cons
=
ODBC;DATABASE=sqlexample;UID=sa;PWD=
;DSN=sql
conn
Open cons
Set cmd
ActiveConnection=conn
Do while not tb
EOF
Cmds
=
insert into example
values(
& tb
Fields(
) &
& tb
Fields(
)
&
)
cmd
CommandText=cmds
cmd
Execute
tb
MoveNext
Loop
MsgBox
載入完畢
提示
Cnn
Close
Unload me
End Sub
使用上述方法
只要知道一些簡單的SQL Server操作及Visual Basic編程便可實現將DBF中的數據載入到SQL Server中
但存在不足之處
如果DBF中數據量很大
超過幾十萬條記錄時
載入的時間將會很長
解決大批量數據載入
需要用到SQL Server所提供的塊拷貝實用程序(bcp)
利用SQL Server所提供的塊拷貝實用程序(bcp)載入數據
實用程序bcp
exe可從Mssql
目錄下的Binn子目錄下獲得
bcp的命令格式及主要參數
主要參數 dbtable 數據庫名
in|out in從文件到數據庫表的拷貝
out從數據庫表到文件拷貝
datafile 操作系統文件的路徑
/f 文件格式
/u username 指定登錄用戶名
/P password 指定一個口令
/S servername 允許用戶指定連接到哪個SQL Server
實現轉換的具體方法 我們將上面的例子
調用Bcp
將數據載入到SQL Server數據庫中
先在目錄下建立一個文件
名為exam
fmt
其中exam
fmt的內容為
SQLCHAR
Id
SQLCHAR
name
在Visual Basic中建立一工程
在Form
上在Form
上建一個Command
將Command
的Caption改為轉換
程序清單如下
Private Sub Command
_Click()
bcp
=
bcp
exe sqlexample
example
in
:examp
dbf
/S sqlserver
/U sa
/P
/f exam
fmt
ok
=Shell(bcp
)
End Sub 該方法可以用較短的時間將大量數據載入到SQL Server數據庫中
但也有其缺點
靈活性較差
使用較為繁瑣
使用軟件工具實行數據載入 應用Visual Basic中的外接程序中的可視化數據管理器(VisData)進行數據加載
實現步驟
(
)
SQL Server數據庫
DBF文件如上
(
)
在Visual Basic中啟動VisData
在
文件
菜單中選擇
打開數據庫
選擇Foxpro
然後打開examp
dbf數據庫
(
)
在
文件
菜單中選擇
導入/導出
選擇目標數據庫類型
ODBC
按
導出
進入下一窗口
選擇DSN
選中sql
執行
(
)
在
Login ID:
欄中輸入登錄用戶名
sa
在
Password
欄中若有登錄口令則輸入
開始進行數據轉換
應用SQL Server中的數據轉換服務(DTS)將數據導入或導出
DTS提供了數據傳送功能
例如輸入
輸出以及在微軟的SQL Server和任何OLE DB
ODBC或者文本格式之間傳送數據
在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