一 t-sql
select * from opendatasource
( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/test2.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[ta$]
Select * From OpenRowSet
('MICROSOFT.JET.OLEDB.4.0','EXCEL 8.0;DataBase=c:/test2.xls',[ta$])
1、excel已經開啟時:
--2005
伺服器: 訊息 7399,層級 16,狀態 1,行 1
連結的伺服器 "(null)" 的 OLE DB 提供者 "Microsoft.Jet.OLEDB.4.0" 報錯。提供者未給出有關錯誤的任何資訊。
伺服器: 訊息 7303,層級 16,狀態 1,行 1
無法初始化連結的伺服器 "(null)" 的 OLE DB 提供者 "Microsoft.Jet.OLEDB.4.0" 的資料來源對象。
--2000
伺服器: 訊息 7399,層級 16,狀態 1,行 1
OLE DB 提供者 'Microsoft.Jet.OLEDB.4.0' 報錯。提供者未給出有關錯誤的任何資訊。
OLE DB 錯誤跟蹤[OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005: 提供者未給出有關錯誤的任何資訊。]。
2、execl中沒有ta標籤:
--2005
伺服器: 訊息 7314,層級 16,狀態 1,行 3
連結的伺服器 "(null)" 的 OLE DB 提供者 "Microsoft.Jet.OLEDB.4.0" 不包含表 "ta$"。該表不存在,或者目前使用者沒有訪問該表的許可權。
--2000
伺服器: 訊息 7314,層級 16,狀態 1,行 1
OLE DB 提供者 'Microsoft.Jet.OLEDB.4.0' 不包含表 'ta$'。該表可能不存在,或目前使用者沒有使用該表的許可權。
OLE DB 錯誤跟蹤[Non-interface error: OLE DB provider does not contain the table: ProviderName='Microsoft.Jet.OLEDB.4.0', TableName='ta$']。
3、excel檔案不存在:
--2005
伺服器: 訊息 7399,層級 16,狀態 1,行 1
連結的伺服器 "(null)" 的 OLE DB 提供者 "Microsoft.Jet.OLEDB.4.0" 報錯。提供者未給出有關錯誤的任何資訊。
伺服器: 訊息 7303,層級 16,狀態 1,行 1
無法初始化連結的伺服器 "(null)" 的 OLE DB 提供者 "Microsoft.Jet.OLEDB.4.0" 的資料來源對象。
--2000
伺服器: 訊息 7314,層級 16,狀態 1,行 1
OLE DB 提供者 'Microsoft.Jet.OLEDB.4.0' 不包含表 'ta$'。該表可能不存在,或目前使用者沒有使用該表的許可權。
OLE DB 錯誤跟蹤[Non-interface error: OLE DB provider does not contain the table: ProviderName='Microsoft.Jet.OLEDB.4.0', TableName='ta$']。
另 2005需要
-- 先啟用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
-- 使用完成後,關閉Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
NTFS 目錄及檔案的使用權限設定也會導致問題