网站数据库连接是非常困难的。因为各种网站数据库的格式都不一样,开发者必须对他们所开发的网站数据库产品的底层API有深刻的了解。因此,能处理多种网站数据库的通用的API就应运而生了—ODBC( Open Database Connectivity)。ODBC是人们创建通用API的早期产物,在程序中可以使用相同的代码访问不同的数据产品。因此有许多种数据库(如 Access、 MSSQLServer、 Oracle、 Informix等)都遵从了这种标准,被称为ODBC兼容的数据库。
一般来说,ODBC是由一套扩展的DLL( Dynamic Link library,动态链接库)组成,DLL提供了标准的数据库应用程序设计接口。而ODBC是建立在标准化的SQL( Structured Query Language,结构化查询语言)之上。所以,通过ODBC和SQL就可以编写独立于任何数据库产品的数据访问程序。
(1)用ODBC连接数据库。ODBC中提供三种DSN,它们的区别很简单。用户DSN只能用于本用户,系统DSN和文件DSN的区别只在于连接信息的存放位置不同。系统DSN存放在ODBC储存区里,而文件DSN则放在一个文本文件中。
2)缺陷。ODBC含有大量的低级的调用,因此开发ODBC应用程序还比较困难。开发者不得不将大量的精力花在底层的数据库通信中,而不能专注于他们所要处理的数据。可以以下面的网站为例作参考:
(3) OLEDB。多年以来,ODBC已成为访问客户端/服务器数据库的标准。ODBC提供了基于标准的接口,接口要求SQL处理功能,并被优化用于基于SQL的方法。然而,如果要访问不使用sQL的非关系数据源(例如,不按照关系存储数据的 Microsoft exchange server)中的数据,情况会如何呢?
OLE DB建立在ODBC之上,并将此技术扩展为能提供更高级数据访问接口的组件结构。此结构对企业中及 Internet上的SoL、非SQL和非结构化数据源提供一致的访问(实际上,在访问基于SQL的数据时, OLE DB仍使用ODBC,因为对于SQL来说,它是最优结构)。
OLE DB由三个组件构成:数据使用者(例如,一个应用程序)、包含并公开数据的数据提供程序以及处理并传输数据的服务组件(例如,査询处理器、游标引擎)。 OLE DB是一个针对SQL数据源和非SQL数据源(例如,邮件和目录)进行操作的API。
OLE DB为C和C++程序员及使用其他包含C样式函数调用语言的程序员提供绑定。有一些语言(例如,VB和Ⅴ SCript)不提供指针数据类型(地址变量),因此,这些语言不能使用C样式绑定,而且不能直接调用 OLE DB。
在此基础上, Microsoft推出了另一个数据访问对象型:ADO(第一个是DAO)。ADO采用基于DAO和RDO的对象,并提供比DAO和RDO更简单的对象模型(尽管会产生一些冗余的功能,如现在进行一项操作时可以用不止一种方法)。ADO中的对象层次结构比DAO中的更平缓。ADO包含一些简化对数据存储区数据的访问任务的内置对象。
而DAO是第一个面向对象的接口,DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成管理一个关系型数据库系统所需的全部操作的属性和方法,这其中包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询和域名管理等。