- 相關(guān)推薦
FoxproDBF數(shù)據(jù)庫轉(zhuǎn)換成SQLServer6.5表的幾種方法
摘要:本文主要介紹用sql server bcp、foxpro編程、access等方法將.dbf數(shù)據(jù)庫轉(zhuǎn)換到sql server表的方法。
關(guān)鍵詞:xbase dbf sql server 數(shù)據(jù)庫 轉(zhuǎn)換
1、前言
當(dāng)今,數(shù)據(jù)庫聯(lián)網(wǎng)實(shí)現(xiàn)數(shù)據(jù)共享已經(jīng)成為信息系統(tǒng)建設(shè)中一個(gè)迅速發(fā)展的潮流。利用sql server、oracal、sybase等客戶機(jī)/服務(wù)器(client/server)體系結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)進(jìn)行信息系統(tǒng)的開發(fā)、更新改造已成為當(dāng)前一大趨勢(shì)。而dbase、foxbase、foxpro是我國(guó)近年應(yīng)用較為廣泛的數(shù)據(jù)庫開發(fā)軟件,許多單位、部門多年來積累了大量的寶貴的數(shù)據(jù)資料,這些部門在進(jìn)行計(jì)算機(jī)信息系統(tǒng)改造、更新的同時(shí),面臨如何繼承大量歷史數(shù)據(jù)的問題,本文介紹三種將dbf數(shù)據(jù)轉(zhuǎn)換成sql server表的方法。
2、利用sql server所提供的塊拷貝實(shí)用程序(bcp)轉(zhuǎn)換
實(shí)用程序bcp.exe可從服務(wù)器sql目錄下的binn子目錄下獲得。
2.1、bcp的 命令格式及主要參數(shù)
bcp [[database_name.]owner.] table_name {in|out} datafile [/m maxerror ][/f formatfile] [/e errfile] [/n] [/c] [/t] field_term] [/r row_term] [/u login_id] [/p password] [/s servername] [/v version] [/a packet_size]
主要參數(shù):
database_name 數(shù)據(jù)庫名
in|out in從文件到數(shù)據(jù)庫表的拷貝。
out從數(shù)據(jù)庫表到文件拷貝。
datafile 操作系統(tǒng)文件的路徑。該路徑的長(zhǎng)度可以是
1-255個(gè)字符。也可指明磁盤驅(qū)動(dòng)器名字。
/c 用字符類型作為缺省值執(zhí)行拷貝操作。
/u login_id 指定登錄標(biāo)識(shí)符。
/p password 允許指定一個(gè)口令。
/s servername 允許用戶指定連接到哪個(gè)sql server
2.2、實(shí)現(xiàn)轉(zhuǎn)換的具體方法
我們以foxpro的數(shù)據(jù)庫結(jié)構(gòu)的單位職工庫(zg.dbf)為例,進(jìn)行數(shù)據(jù)轉(zhuǎn)換。其數(shù)據(jù)結(jié)構(gòu)為:
字段名 類型 字段長(zhǎng)度 小數(shù)點(diǎn)位數(shù) 字段內(nèi)容
bh c 4 職工編號(hào)
xm c 8 職工姓名
xb c 2 性別
nl n 2 0 年齡
zw c 10 職務(wù)
gzsj d 參加工作時(shí)間
jl m 簡(jiǎn)歷
zp g 照片
實(shí)現(xiàn)步驟:
(1)、啟動(dòng)服務(wù)器,進(jìn)入window nt,sql server 6.0,打開sql enterprise manager為單位職工庫創(chuàng)建一個(gè)數(shù)據(jù)庫設(shè)備zg.dat,然后在該設(shè)備上建立zg數(shù)據(jù)庫及表(table),表的數(shù)據(jù)結(jié)構(gòu)要與zg.dbf的數(shù)據(jù)結(jié)構(gòu)一致;蛴靡韵聅ql server命令創(chuàng)建設(shè)備和創(chuàng)建表。
a、創(chuàng)建數(shù)據(jù)設(shè)備
disk init
name='zg' 數(shù)據(jù)庫設(shè)備名
physname='c:\\zg\\zg.dat' 數(shù)據(jù)庫文件所在路徑
vdevno=8 數(shù)據(jù)庫設(shè)備的標(biāo)識(shí)號(hào)
size=5120 數(shù)據(jù)庫設(shè)備大小(10m)
b、建立zg表
create database zg_data on zg=1024,log on zg=1024 建立數(shù)據(jù)庫
use zg_data
create table zg ( bh char (4) null, xm char (8) null, xb char (2) null, nl int null, zw char (10) null,gzsj datatime null, jl text null, zp image null ) 建立表
go
(2)、在客戶機(jī)上啟動(dòng)foxpro,用use命令打開需轉(zhuǎn)換的.dbf文件,用copy命令將.dbf文件中數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)的文本文件.txt,命令如下:
use zg.dbf
copy all to zg.txt deli with blan
(3)、從客戶機(jī)登錄到windows nt服務(wù)器上,將zg.txt文件拷貝到服務(wù)器的職工庫目錄c:\\zg下。
(4)、在服務(wù)器上,由windows nt進(jìn)入到ms-dos狀態(tài),然后執(zhí)行bcp將數(shù)據(jù)從zg.txt轉(zhuǎn)換到sql表,命令格式如下:
bcp zg in zg.txt /c /s mainserver /u manager /p 0001 (mainserver為服務(wù)器名,manager為用戶名,0001為用戶口令)。
該轉(zhuǎn)換方法速度較快,不占用服務(wù)器上事務(wù)日志空間。但較為復(fù)雜、繁鎖,操作者必須熟練掌握foxpro、sql server的命令和操作,而且無法將foxpro的memo、general字段轉(zhuǎn)換到sql server表。
3、用foxpro for window 2.5 編程實(shí)現(xiàn)轉(zhuǎn)換
"用foxpro編程實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換"即通過sql server提供的odbc接口(開放數(shù)據(jù)庫接口)及foxpr提供odbc接口工具connectivity kit (fpsql.fll),建立sql與foxpro的連接,由foxpro向sql server提交創(chuàng)建表命令,然后將.dbf的每條記錄,串成一個(gè)字符串,將插入命令連同字符串提交給sql server,完成數(shù)據(jù)轉(zhuǎn)換。
實(shí)現(xiàn)步驟:
(1)、odbc的設(shè)置:在客戶機(jī)上啟動(dòng)windows for group,進(jìn)入windows的控制面板( control panel )。雙擊odbc圖標(biāo),進(jìn)行zg數(shù)據(jù)庫的odbc驅(qū)動(dòng)設(shè)置。
選擇"add"增加新的odb
【FoxproDBF數(shù)據(jù)庫轉(zhuǎn)換成SQLServer6.5表的幾種方法】相關(guān)文章:
《工程力學(xué)》中確定約束反力方向的幾種方法09-08
從西方幾種藝術(shù)史研究方法看中國(guó)繪畫史研究(精選10篇)02-23
計(jì)算機(jī)數(shù)據(jù)庫論文07-21
計(jì)算機(jī)數(shù)據(jù)庫論文07-20
計(jì)算機(jī)數(shù)據(jù)庫論文15篇【經(jīng)典】07-20