解決方法(摘抄自網路):
--方法一:
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表就可以了,說明經過一段時間後查詢分析器才把這個表關閉。
可以直接將dbf檔案匯入sqlserver資料庫,也可以先將dbf檔案匯入dataset,再將dataset的資料匯入資料庫。dbf檔案匯入dataset的具體實現方法如下:
需要引入system.data.odbc包
public dataset importdbftodataset(string filepath, stringview codetabname)
catch
(exception e)
finally
return
thisdataset;
}
下面的程式通過timer定時器,設定定時將本地dbf檔案直接存入資料庫表,該dbf檔案會定時被覆蓋掉。
class1.無法初始化鏈結伺服器 "(null)" 的 ole db 訪問介面 "msdasql" 的資料來源物件」;connect
public
void
createtimer()
void timer_elapsed(object
sender, elapsedeventargs e)
private
void
insert()
}
2.sql server 阻止了對元件 'ad hoc distributed queries' 的 statement'openrowset/opendatasource' 的訪問;
原因是因為「功能的外圍應用配置器」中沒有「啟用openrowset和opendatasource支援」,只需要開啟「功能的外圍應用配置器」設定一下就可以。
將ACCESS資料批量匯入SQL SERVER
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 if object id sp inputaccesstosql isnotnull dropproc sp...
將Excel檔案資料庫匯入SQL Server
將excel檔案資料庫匯入sql server的三種方案 方案一 通過oledb方式獲取excel檔案的資料,然後通過dataset中轉到sql server openfiledialog new openfiledialog openfiledialog.filter excel files xl...
如何高效的將excel匯入sqlserver?
大部分人都知道用oledb來讀取資料到dataset,但是讀取之後怎麼處理dataset就千奇百怪了。很多人通過迴圈來拼接sql,這樣做不但容易出錯而且效率低下,system.data.sqlclient.sqlbulkcopy 對於新手來說還是比較陌生的,這個就是傳說中效率極高的bcp,6萬多資料...