有许多种办法可以连上一个数据库 你可以用System DSN DSNless连接或是本地的OLEDB providerADO代码? 这是什么什么玩艺儿? 也许你们中的许多人以前没有听说过 要回答这个问题我们先得回顾一下数据库连接的历史 期的数据库连接是非常困难的 每个数据库的格式都不一样开发者得对他们所开发的每种数据库的底层API有深刻的了解 因此能处理各种各样数据库的通用的API就应运而生了 也就是现在的ODBC(Open Database Connectivity) ODBC是人们在创建通用API的早期产物 有许多种数据库遵从了这种标准被称为ODBC兼容的数据库 ODBC兼容的数据库包括Access MSSQL Server ADO代码等 ADO代码并不是完美无缺的它仍然含有大量的低级的调用开发ODBC应用程序仍较困难 开发者不得不将大量的精力花在底层的数据库通信中而不能专注于他们所要处理的数据 后来微软提出了一个解决方案 DAO(Data Access Objects) DAO的代码看起来象这样 objItemAddNew objItemName = Chair objItemPrice = objItemUpdate 你也许看过DAO的代码 后来DAO演变为RDO(Remote Data Objects 为分布式数据库体系设计) 再后来是ADO 尽管它们都有各自的不足之处 根据微软的说法ODBC提供了本地SQL数据的存取DAO提供了高级的数据对象 ADO代码都需要数据以SQL(Structured Query Language)的格式存储 针对这些缺陷微软提出了OLEDB一个基于COM的数据存储对象能提供对所有类型的数据的操作甚至能在离线的情况下存取数据(比方说你使用的是你的便携机你可以毫不费力地看到最后一次数据同步时的数据映像) OLEDB位于ADO代码层与应用程序之间 在你的ASP页面里ADO是位于OLEDB之上的应用程序 你的ADO调用先被送到OLEDB然后再交由ODBC处理 你可以直接连接到OLEDB层如果你这么做了你将看到服务器端游标(recordset的缺省的游标也是最常用的游标)性能的提升 那我们该如何直接连接到OLEDB呢? |