您的位置:首页 > 运维架构

利用OpenDataSource读取Excel数据

2009-01-06 18:11 295 查看
Ms Server2005提供OpenDataSource读取Excel数据很方便。

访问微软官方网http://msdn.microsoft.com/zh-cn/vbasic/ms179856.aspx

了解OpenDataSource 使用方法

语法

OPENDATASOURCE ( provider_name, init_string )


参数

provider_name

注册为用于访问数据源的 OLE DB 访问接口的 PROGID 的名称。provider_name 的数据类型为 char,无默认值。

init_string

连接字符串,该字符串将要传递给目标提供程序的 IDataInitialize 接口。提供程序字符串语法是以关键字值对为基础的,这些关键字值对由分号隔开,例如:“keyword1=value; keyword2=value”。

若要了解提供程序上支持的特定关键字值对,请参阅 Microsoft Data Access SDK。该文档定义了基本语法。下表列出了 init_string 参数中最常用的关键字。

关键字 OLE DB 属性 有效值和说明
数据源
DBPROP_INIT_DATASOURCE
要连接的数据源的名称。不同的提供程序用不同的方法对此进行解释。对于 SQL Server Native Client OLE DB 访问接口,这指示服务器的名称。对于 Jet OLE DB 访问接口来说,这指示 .mdb 文件或 .xls 文件的完整路径。
位置
DBPROP_INIT_LOCATION
要连接的数据库的位置。
扩展属性
DBPROP_INIT_PROVIDERSTRING
提供程序特定的连接字符串。
连接超时
DBPROP_INIT_TIMEOUT
达到该超时值后,连接尝试将失败。
用户 ID
DBPROP_AUTH_USERID
用于该连接的用户 ID。
密码
DBPROP_AUTH_PASSWORD
用于该连接的密码。
目录
DBPROP_INIT_CATALOG
连接到数据源时的初始或默认的目录名称。
集成安全性
DBPROP_AUTH_INTEGRATED
SSPI,指定 Windows 身份验证

备注

仅当 DisallowAdhocAccess 注册表选项针对指定的提供程序显式设置为 0,并且启用 Ad Hoc Distributed Queries 高级配置选项时,OPENDATASOURCE 才可用于访问 OLE DB 数据源中的远程数据。如果未设置这些选项,则默认行为不允许即席访问。

OPENDATASOURCE 函数可以在能够使用链接服务器名的相同 Transact-SQL 语法位置中使用。因此,可以将 OPENDATASOURCE 用作四部分名称的第一部分,该部分名称引用 SELECT、INSERT、UPDATE 或 DELETE 语句中的表或视图的名称;或者引用 EXECUTE 语句中的远程存储过程。当执行远程存储过程时,OPENDATASOURCE 应该引用 SQL Server 的另一个实例。OPENDATASOURCE 不接受参数变量。

与 OPENROWSET 函数类似,OPENDATASOURCE 应该只引用那些不经常访问的 OLE DB 数据源。对于访问次数较频繁的任何数据源,请为它们定义链接服务器。无论 OPENDATASOURCE 还是 OPENROWSET 都不能提供链接服务器定义的全部功能,例如,安全管理以及查询目录信息的功能。每次调用 OPENDATASOURCE 时,都必须提供所有的连接信息(包括密码)。

举例说明如下:

SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:/BA_428201452.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet1$]

特强调Excel文件必须与Ms Server2005数据库属于同一个服务器中,不然提示错误:

消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: