asp是早期微软开发的一款网页制作程序软件,目前已经很少人在用。但是还有些旧的网站一地也在使用asp,让我们一起来了解下asp怎么样连接数据库吧?
odbc(开放数据库互连):是microsoft引进的一种早期数据库接口技术。它实际上是ado的前身。早期的数据库连接是非常困难的. 每个数据库的格式都不一样,开发者得对他们所开发的每种数据库的底层api有深刻的了解. 因此,能处理各种各样数据库的通用的api就应运而生了. 也就是现在的odbc(open database connectivity), odbc是人们在创建通用api的早期产物. 有许多种数据库遵从了这种标准,被称为odbc兼容的数据库。
oledb(对象链接和嵌入数据库)位于odbc层与应用程序之间. 在你的asp页面里,ado是位于oledb之上的"应用程序". 你的ado调用先被送到oledb,然后再交由odbc处理. 你可以直接连接到oledb层,如果你这么做了,你将看到服务器端游标(recordset的缺省的游标,也是最常用的游标)性能的提升.
用odbc连接数据库:
odbc中提供三种dsn,它们的区别很简单:用户dsn只能用于本用户。系统dsn和文件dsn的区别只在于连接信息的存放位置不同:系统dsn存放在odbc储存区里,而文件dsn则放在一个文本文件中。
它们的创建方法就不说了。
在asp中使用它们时,写法如下:
a.sql server:
用系统dsn: connstr="dsn=dsnname; uid=xx; pwd=xxx;database=dbname"
用文件dsn: connstr="filedsn=xx;uid=xx; pwd=xxx;database=dbname"
还可以用连接字符串(从而不用再建立dsn):
connstr="driver={sql server};server=servername;uid=xx;pwd=xxx"
b.access:
用系统dsn: connstr="dsn=dsnname"
(或者为:connstr="dsn=dsnname;uid=xx;pwd=xxx")
用文件dsn: connstr="filedsn=xx"
还可以用连接字符串(从而不用再建立dsn):
connstr="driver={microsoft access driver};dbq=d:abcabc.mdb"
用oledb连接数据库:
a.sql server:
connstr="provider=sqloledb;
data source=servername;uid=xx;pwd=xxx;database=dbname"
b.access:
connstr="provicer=microsoft.jet.oledb.4.0;
data source=c:abcabc.mdb"
值得注意的是,ole db对odbc的兼容性,允许ole db访问现有的odbc数据源。其优点很明显,由于odbc相对ole db来说使用得更为普遍,因此可以获得的odbc驱动程序相应地要比ole db的要多。这样不一定要得到ole db的驱动程序,就可以立即访问原有的数据系统。
提供者位于ole db层,而驱动程序位于odbc层。如果想使用一个odbc数据源,需要使用针对odbc的ole db提供者,它会接着使用相应的odbc驱动程序。如果不需要使用odbc数据源,那么可以使用相应的ole db提供者,这些通常称为本地提供者(native provider)。
可以清楚地看出使用odbc提供者意味着需要一个额外的层。因此,当访问相同的数据时,针对odbc的ole db提供者可能会比本地的ole db提供者的速度慢一些。