|
以下是引用鱼之乐在2003-7-22 22:32:00的发言:
我想更多的时候是在sql server2000的查询分析器中用它来关联查询sql server/excel/access三者数据.
OPENDATASOURCE
不使用链接的服务器名,而提供特殊的连接信息,并将其作为四部分对象名的一部分。
语法
OPENDATASOURCE ( provider_name, init_string )
帮助中的示例
下面的示例访问来自某个表的数据,该表在 SQL Server 的另一个实例中。
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerName;User ID=MyUID;Password=MyPass'
).Northwind.dbo.Categories
下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
但我的例子--却出错,为什么?
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:\ACCESS\QT.xls";
User ID=;Password=;Extended properties=Excel 5.0')...aaa
如上例,我想在sql查询器中查qt.xls中的aaa表,运行时提示错误:
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。
注释
仅当 DisallowAdhocAccess 注册表选项显式设置为 0 时,才可以使用 OPENDATASOURCE 访问远程 OLE DB 数据源的数据。如果未设置此选项,默认行为是不允许特殊访问。 |
|