ASP OLE DB连接数据库
OLE DB定义了一组COM接口,以便为应用程序提供对存储在不同信息源中的数据的统一访问。此方法允许数据源通过支持适用于数据源的众多DBMS功能的接口共享数据。OLE DB的高性能体系结构得益于它使用了灵活的、基于组件的服务模型。OLE DB只需要完成特定任务所需的组件,而不预先规定应用程序和数据之间的中间层数。
例如,假设有位用户需要运行查询功能,有如下几种解决方案供参考:
1) 数据驻留在关系数据库中,目前存在针对该数据库的ODBC驱动程序,但没有原生的OLE DB提供者。应用程序使用ADO与OLE DB Provider for ODBC通信,OLE DB Provider for ODBC然后加载适当的ODBC驱动程序。ODBC驱动程序将SQL语句传递给DBMS,由DBMS检索数据。
2) 数据驻留在SQL Server中,针对该服务器存在原生的OLE DB提供者。应用程序使用ADO与OLE DB Provider for Microsoft SQL Server通信,无须中间环节。
3) 数据驻留在Microsoft Exchange Server中,尽管存在用于该服务器的OLE DB提供者,但它
并不显露引擎来处理SQL查询:应用程序使用ADO与OLE DB Provider for Microsoft Exchange通信,并调用某个OLE DB查询处理器组件来处理查询任务。
4) 数据以文档形式驻留在Microsoft NTFS文件系统中:使用原生的OLE DB提供者通过Microsoft Indexing Service可访问数据,Microsoft Indexing Service索引文档系统中文档的内容和属性来支持有效的内容搜索。
在上述4种可用方案中,应用程序都可以查询数据。使用最小数目的组件即可满足用户的要求。在每种情况下,仅在需要时才使用额外的组件,而且只有需要的组件得到调用。这种可重用、可共享的组件的按需加载方式大大提高了OLE DB在使用时的性能。
OLE DB Provider分为两类:提供数据的提供者和提供服务的提供者。数据提供者拥有自己的数据并把数据以表格形式显露给应用程序。服务提供者通过产生和消费数据来封装服务,以增加ADO应用程序中的功能。
数据提供者代表不同的数据来源,例如SQL数据库、索引文件、电子表格、文档存储和邮件文件。服务提供者是通过实现数据存储原本并不支持的扩充接口来扩展数据提供者功能的组件。 | |
在表5-2中列出了ASP中默认提供的可用OLE DB Provider(驱动程序),这可能与读者计算机上的有些不同。因为,这些取决于安装在服务器上的服务及软件。例如,Oracle数据库的连接驱动程序OLE DB Provider for Oracle,就要求在客户机上安装Oracle软件。
表5-2 默认OLE DB Provider
OLE DB Provider名称 | 说明 |
Jet OLE DB 4.0 | 用于微软Access数据库。 |
DTS Packages | 用于SQL Server的数据转换服务(Data Transformation Services)。 |
Internet Publishing | 用于访问Web服务器。 |
Indexing Services | 用于索引目录(Index Catalogs)。 |
Site Server Search | 用于站点服务器查目录。 |
ODBC Drivers | 用于ODBC数据源。 |
OLAP Services | 用于微软OLAP服务器。 |
Oracle | 用于Oracle数据库。 |
SQL Server | 用于微软SQL Server数据库。 |
Simple Provider | 用于简单的文本文件。 |
MSDataShape | 用于层次数据。 |
Microsoft Directory Services | 用于Windows 2000的目录服务。 |
DTS Flat File | 用于SQL Server的数据转换服务的平面文件管理。 |
使用OLE DB驱动程序连接数据库的方法非常简单。例如,下面的语句给出了使用OLE DB方式连接Access数据库“E:\myRoot\asp\student.mdb”的字符串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source= E:\myRoot\asp\student.mdb
此外,还可以在ASP程序中使用如下两种改良的OLE DB驱动程序方式连接Access数据库:
'形式1
conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.MapPath("student.mdb")
'形式2
conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &_
" E:\myRoot\asp\student.mdb;user id=;password=;"
连接语句中的“Provider”表示数据源的提供者;“Data Source”表示数据库服务器,对于Access数据库来说,表示具体的文件名;“user id”表示访问数据库的用户名;“password”表示密码。因为作者没有为数据库student.mdb设置登录名称和密码,所以在连接字符串中可以没有登录名称和密码这部分。数据库文件的路径可以是实际路径也可以是虚拟路径,但当使用Server.MapPath方法时只能使用虚拟路径。
通过OLE DB连接SQL Server数据库的方法与连接Access数据库基本一样,连接语句的一般形式为:
"Provider=SQLOLEDB;Data Source=数据库服务器名称;" &_
asp数据"initial catalog=数据库名称;user id=登录名称;password=密码;"
与连接Access数据库不同,这里的提供者应为:“SQLOLEDB”,“Data Source”表示数据库服务器名称,如果是本地机器,可以设置为“(local)”;“initial catalog”为默认的数据库名称,因为SQL Server同时管理多个数据库,因而需要指定具体的数据库。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论