當前位置:首頁 » 編程語言 » 如何將dbf文件導入sql
擴展閱讀
c語言中j2什麼意思 2022-08-13 02:41:09

如何將dbf文件導入sql

發布時間: 2022-08-06 22:21:46

1. 怎麼將dbf數據表中的若干條記錄一次性插入到sql指定數據表中

以下均以SQL2000、VFP6及以上的表為例

代碼導入:查詢分析器中執行如下語句(先選擇對應的資料庫)

-------------如果接受導入數據的SQL表已存在

--如果接受導入數據的SQL表已經存在
Insert Into 已經存在的SQL表名 Select * From openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:','select * from aa.DBF')

--也可以對應列名進行導入,如:
Insert Into 已經存在的SQL表名 (列名1,列名2...) Select (對應列名1,對應列名2...) From openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:','select * from aa.DBF')

-------------如果接受導入數據的SQL表不存在,導入時創建

--方法一:有一個缺點:把DBF表導入SQL Server中後,馬上用VISUAL FOXPRO打開DBF表,會提示「不能存取文件」,即這個表還被SQL打開著呢。可是過了1分鍾左右,再打開DBF表就可以了,說明經過一段時間後查詢分析器才把這個表關閉。
Select * Into 要生成的SQL表名 From openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:','select * from dbf表名.DBF')
--需要安裝Visual FoxPro ODBC Driver(驅動下載:http://msdn2.microsoft.com/zh-cn/vfoxpro/Bb190233.aspx)

--方法二:有一個缺點:把DBF表導入SQL Server中後,馬上用VISUAL FOXPRO打開DBF表,會提示「不能存取文件」,即這個表還被SQL打開著呢。可是過了1分鍾左右,再打開DBF表就可以了,說明經過一段時間後查詢分析器才把這個表關閉。
Select * Into TEMP1 From openrowset('VFPOLEDB.1','C:';'admin';'' ,'select * from dbf表名.DBF')
--如果沒有安裝VFP,需要把vfpoledb.dll拷貝到SYSTEM目錄下,並注冊。

--方法三:導入SQL SERVER後,源表再用VFP打開就不提示「不能存取文件」,說明語句執行後就把源表關閉了。不過也有不盡人意的地方,就是用前兩種方式導入後,源表中的字元型欄位導入後SQL表欄位對應變成NVARCHAR了。
Select * Into 要生成的SQL表名 From OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase IV;HDR=NO;IMEX=2;DATABASE=c:','select * from dbf表名.dbf')

--方法四:導入SQL SERVER後,源表再用VFP打開就不提示「不能存取文件」,說明語句執行後就把源表關閉了。不過也有不盡人意的地方,就是用前兩種方式導入後,源表中的字元型欄位導入後SQL表欄位對應變成NVARCHAR了。
Select * Into 要生成的SQL表名 From OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase III;HDR=NO;IMEX=2;DATABASE=c:','select * from dbf表名.dbf')

--方法五:用BDE驅動導入時,再用VFP打開源表時不會提示「不能存取文件」,不過有點問題:就是有時整型數據導入後變為負數了。
Select * From OPENROWSET('MSDASQL','CollatingSequence=ASCII;DBQ=D:SEND;DefaultDir=D:SEND;Deleted=0;Driver={Driver do Microsoft dBase (*.dbf)};FIL=dBase 5.0','select * from dbf表名.DBF') A
--前提:先在機器上安裝BDE的驅動

--也可以只導幾個欄位
Select * Into 要生成的SQL表名 From openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:','select 欄位1,欄位2 from aa.DBF')

/*說明:
SourceDB=c: c:是dbf文件的存放目錄
aa.Dbf 是dbf文件名
*/

工具導入1:通過SQL Server的「導入導出數據」工具(DTS)

1、建立Visual FoxPro的數據源:

在ODBC中建立一個Visual FoxPro的數據源(ODBC-Microsoft Visual FoxPro Driver)的步驟如下:
打開ODBC配製窗口 ->
選擇「用戶DSN」頁面或「系統DSN」頁面,建議用後者 ->
點擊「添加」按鈕 ->
選擇「Microsoft Visual FoxPro Driver」這個驅動 ->
在Data Source Name(數源源名稱)處輸入此數據源名稱,可自定,本例如LjDbf,Database Type(資料庫類型)處選擇「Free Table directory」(自由表路徑),然後在下面的Path(路徑)處設置你要導入的DBF表所在的路徑,本列如「D:」 ->
點擊「OK」(確定)配製完成 ->
關閉ODBC配製窗口

2、通過SQL的導入導出數據(DTS)來把DBF表導成SQL表:

開始 ->
程序 ->
Microsoft Sql Server-導入導出數(DTS)->
下一步 ->
此步為「選擇數據源」的窗口,「數據源」選「Microsoft Visual FoxPro Driver」,同時在"用戶/系統DSN"處選擇你剛剛配製的數據源名(本例如LjDbf,當然上面配製數據源的過程也可以通過「用戶/系統DSN」後面有一個「新建」按鈕來完成),然後點擊「下一步」 ->
此步為「選擇目的」的窗口,「目的」選"用於SQL Server的Microsoft OLE DB提供程序"(此項一般為默認),同時選擇你要導成的SQL表的存放資料庫、伺服器及伺服器的驗證方式,然後點擊「下一步」 ->
這時:
A:如果要把DBF表全部欄位均導入,則選擇「從源資料庫復製表和視圖」,點擊「下一步」 ->
選擇要導入的DBF表,在『目的』處可修改生成SQL表的名稱,默認與DBF表名一樣,點擊「下一步」 ->
再點擊「下一步」 ->
最後點擊「完成」進行導入即可(導入成功與否DTS會有提示)。

B:如果只導入DBF表中的幾個欄位或全部欄位(如果導入全部欄位,也可以用上面步驟A,結果是一樣的,只是方法不同),則選擇「用一條查詢指定要輸出的數據」,點擊「下一步」 ->
點擊「查詢生成器」,選擇要導入的DBF表(此時可選擇列),點擊「下一步」 ->
指定排序順序,選一個或多個排序欄位,如果不用排序,此步可略,點擊「下一步」 ->
此步可以指定查詢條件,如果沒有條件,此步可略,點擊「下一步」 ->
出現了對應的SQL語句(也可以再修改生成的SQL語句,但不推薦),再點擊「下一步」 ->
這時可修改要生成的SQL表名,默認為「結果」,再點擊「下一步」 ->
再點擊「下一步」 ->
最後點擊「完成」進行導入即可(導入成功與否DTS會有提示)。

工具導入2:

先把DBF表轉成EXCEL或TXT,然後SQL SERVER的導入導出工具把EXCEL或TXT導入即可(此方法類似方法二,不再介紹)。

----------Sql Server表 導出 Dbf----------

方法一:如果DBF表已經存在,在查詢分析器中執行以下語句(先選擇對應的資料庫)

Insert Into openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:','select * from 表B.DBF') Select * From 表a

/*說明:
SourceDB=c: c:是dbf文件的存放目錄
表B.Dbf 是已經存在dbf文件名,數據導入此表
表A.Dbf 是要導出的SQL表名
*/

方法二:如果DBF表不存在,直接導出時創建,通過SQL Server的「導入導出數據」工具

1、建立Visual FoxPro的數據源:

在ODBC中建立一個Visual FoxPro的數據源(ODBC-Microsoft Visual FoxPro Driver)的步驟如下:
打開ODBC配製窗口 ->
選擇「用戶DSN」頁面或「系統DSN」頁面,建議用後者 ->
點擊「添加」按鈕 ->
選擇「Microsoft Visual FoxPro Driver」這個驅動 ->
在Data Source Name(數源源名稱)處輸入此數據源名稱,可自定,本例如LjDbf,Database Type(資料庫類型)處選擇「Free Table directory」(自由表路徑),然後在下面的Path(路徑)處隨便設置一個路徑,本列如「D:」 ->
點擊「OK」(確定)配製完成 ->
關閉ODBC配製窗口

2、通過SQL的導入導出數據(DTS)來把SQL表導成DBF表:

開始 ->
程序 ->
Microsoft Sql Server-導入導出數(DTS)->
下一步 ->
此步為「選擇數據源」的窗口,「數據源」選"用於SQL Server的Microsoft OLE DB提供程序"(此項一般為默認),同時選擇你要導出的SQL表所在資料庫、伺服器及伺服器的驗證方式,然後點擊「下一步」 ->
此步為「選擇目的」的窗口,「目的」選「Microsoft Visual FoxPro Driver」,同時在"用戶/系統DSN"處選擇你剛剛配製的數據源名(本例如LjDbf,當然上面配製數據源的過程也可以通過「用戶/系統DSN」後面有一個「新建」按鈕來完成),然後點擊「下一步」 ->
這時:
A:如果要把被導出的SQL表的全部欄位均導出,則選擇「從源資料庫復製表和視圖」,點擊「下一步」 ->
選擇要導出的表或視圖,在『目的』處可修改生成的DBF表的名稱,默認與SQL表名一樣,點擊「下一步」 ->
再點擊「下一步」 ->
最後點擊「完成」進行導出即可(導出成功與否DTS會有提示),導出成功之後的DBF表的主文件名與SQL的表名一樣。

B:如果只導出SQL表中的幾個欄位或全部欄位(如果導出全部欄位,也可以用上面步驟A,結果是一樣的,只是方法不同),則選擇「用一條查詢指定要輸出的數據」,點擊「下一步」 ->
點擊「查詢生成器」,選擇要導出的SQL表(此時可選擇列),點擊「下一步」 ->
指定排序順序,選一個或多個排序欄位,如果不用排序,此步可略,點擊「下一步」 ->
此步可以指定查詢條件,如果沒有條件,此步可略,點擊「下一步」 ->
出現了對應的SQL語句(也可以再修改生成的SQL語句,但不推薦),再點擊「下一步」 ->
這時可修改要生成的DBF表名,默認為「結果」,再點擊「下一步」 ->
再點擊「下一步」 ->
最後點擊「完成」進行導出即可(導出成功與否DTS會有提示)。

2. 江湖救急,怎樣把.dbf表導入SQL庫

方法一:查詢分析器中執行如下語句(先選擇對應的資料庫)
--如果接受導入數據的SQL表已經存在 insert into 已經存在的SQL表名 select * from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select * from aa.DBF') --也可以對應列名進行導入,如: insert into 已經存在的SQL表名 (列名1,列名2...) select (對應列名1,對應列名2...) from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select * from aa.DBF') --如果接受導入數據的SQL表不存在,導入時創建
--方法一: select * into 要生成的SQL表名 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase IV;HDR=NO;IMEX=2;DATABASE=c:\','select * from dbf表名.dbf') --方法二: select * into 要生成的SQL表名 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase III;HDR=NO;IMEX=2;DATABASE=c:\','select * from dbf表名.dbf') --方法三: select * into 要生成的SQL表名 from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select * from dbf表名.DBF') --用前兩種方法導入SQL SERVER後,源表再用VFP打開就不提示「不能存取文件」,說明語句執行後就把源表關閉了。不過也有不盡人意的地方,就是用前兩種方法導入後,源表中的字元型欄位導入後SQL表欄位對應變成NVARCHAR了。
--第三種方法有一個缺點:把DBF表導入SQL Server中後,馬上用VISUAL FOXPRO打開DBF表,會提示「不能存取文件」,即這個表還被SQL打開著呢。可是過了1分鍾左右,再打開DBF表就可以了,說明經過一段時間後查詢分析器才把這個表關閉。 --也可以只導幾個欄位
select * into 要生成的SQL表名 from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select 欄位1,欄位2 from aa.DBF') /*--說明: SourceDB=c:\ c:\是dbf文件的存放目錄 aa.DBF 是dbf文件名 --*/

3. sql導入dbf文件用什麼方式

--方法一:
select * into 要生成的SQL表名 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase IV;HDR=NO;IMEX=2;DATABASE=c:/','select * from dbf表名.dbf')

--方法二:
select * into 要生成的SQL表名 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase III;HDR=NO;IMEX=2;DATABASE=c:/','select * from dbf表名.dbf')

--方法三:
select * into 要生成的SQL表名 from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:/','select * from dbf表名.DBF')

4. 如何將VFP中的dbf文件導入到sql2000中去,要比較詳細的步驟。急!在線等

先用VF建立一個資料庫
把需要的dbf文件導入進去
,在ODBC中建立一個"系統DSN"把VF的.DBC文件添加進去,其他自定義
導入數據
的數據源選擇
Micrsoft
dBase
VFP
Driver(*.dbf)
在"系統/用戶DSN"中後面點新建(如果沒有的話)
,選擇系統數據源
(...)
,
再次選擇
Micrsoft
dBase
VFP
Driver(*.dbf)
點"完成"
彈出
"ODBC
Visual
FoxPro
Setup"
,在
path
中選擇剛才建好的VF資料庫文件(*.
dbc)
其他的自定義
點OK
完成一步了
在用戶名中俺就打入了admin
不知道是源\原資料庫的密碼還是新的資料庫密碼
點下一步
後面的就不用說啦

5. 怎樣把a.dbf表上傳到SQL伺服器

方法1.讀取dbf的數據,然後插入SQL資料庫
方法2.將dbf上傳到伺服器,再批量導入SQL資料庫

6. 將DBF導入SQLserver用C#怎麼寫

將SQL資料庫表導出為DBF文件。方法步驟如下: 1、打開SQL企業管理器,找到伺服器下對應資料庫的表,右鍵所有任務-》導出數據 2、下一步之後選擇數據源時默認,目的數據源是選擇DBASEIII,文件名出填寫需要導出的目錄即可 3、繼續下一步即可。

7. 怎樣把本地dbf數據導入到遠程SQL伺服器上

以下是具體實現步驟:(1)將MS SQL Server數據文件(*.mdf)導附加到本地資料庫,首先登錄到本地資料庫伺服器,接著右擊您准備導入數據的資料庫,選擇「所有任務」下的「附加到資料庫...」 然後,按照提示選擇本地資料庫文件(*.mdf),即可實現將MS SQL Server數據文件(*.mdf)導附加到本地資料庫。(2)將本地的MS SQL Server數據導入到遠程伺服器上。 以下演示引導客戶將本地的MS SQL Server數據導入到遠程伺服器上,供客戶的網站使用。首先登錄到遠程資料庫伺服器:1.右擊您准備導入數據的資料庫,選擇「所有任務」下的「導入數據」2.進入DTS導入/導出向導,點擊「下一步」按鈕繼續3.選擇數據源,輸入數據源所在的資料庫伺服器名稱、用戶名、密碼和要復制數據的源資料庫,點擊「下一步」按鈕4.選擇目的,輸入目的資料庫所在的資料庫伺服器名稱、用戶名、密碼和要復制數據的目的資料庫,點擊「下一步」按鈕5.選擇「在SQL Server資料庫之間復制對象和數據」方式,點「下一步」繼續6.取消安全措施選項7.設定調度方式,一般選「立即運行」就可以,然後點「下一步」繼續8.點「完成」執行9.數據導入完成 至此即可將本地的MS SQL Server數據導入到遠程伺服器上。

8. 如何用SQL語句實現將客戶端上的DBF文件導入到SQL伺服器

SQL
code/**************導入DBF文件****************/select*fromopenrowset('MSDASQL',
'Driver=Microsoft
Visual
Fox谷歌PRo
Driver;
SourceDB=e:\VFP98\data;
SourceType=DBF',
'select
*
from
customer
where
country
!=
"USA"
order
by
country')
go/*****************
導出到DBF
**************
如果要導出數據到已經生成結構(即現存的)FOX谷歌PRO表中,可以直接用下面的SQL語句
*/insertintoopenrowset('MSDASQL',
'Driver=Microsoft
Visual
Fox谷歌PRo
Driver;SourceType=DBF;SourceDB=c:\',
'select
*
from
[aa.DBF]')
select*from

/*說明:
SourceDB=c:\
指定fox谷歌PRo表所在的文件夾
aa.DBF
指定fox谷歌PRo表的文件名.
*/

9. 如何將dbf文件導入sqlserver

select * into 要生成的SQL表名 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase III;HDR=NO;IMEX=2;DATABASE=c:/','select * from dbf表名.dbf')

10. delphi中怎麼將dbf數據導入sql

增加一個TQuery連接DBF表,即源數據表再增加一個TADOTable或者TADOQuery,將其屬性:
LockT
ype
設置為ltBatchOptimistic(批量更改模式),連接到SQL的表中即目標數據表然後,
遍歷TQuery中的數據,將需要的紀錄追加到TADOTable或者TADOQuery中,
最後提交TADOTable或者TADOQuery的更改(在循環外)完成