ASP数据库操作大全|提前阅读:|什么叫活动服务器组件(ActiveServerCompontents)?组件是基于Activex技术的代码片断,通过指定接口提供指定的一组服务,组件供给客户端(Clients)在运行时候请求的对象。你可以理解成组件是一种程序,通过调用这种程序,你可以实现你在ASP程序中无法实现或者很难实现的功能,组件是一种很好的代码重用方法。我们可以运用ActiveServerPages设计制作动态、交互的Web页面,但是一旦你开始着手工作,参与一些实际工作的时候,你会发现asp在某些方面功能不强,甚至不借助服务器端组件就很难实现某些功能,例如:数据库操作(我们通常使用ADO,ADO就是一个组件),邮件功能,文件系统操作,图形功能...但是幸运的是我们可以找到很多组件来提高ASP编程应用能力,在下面的内容我们将系统的介绍有关的组件,在下一章里面我们还将详细介绍如何亲自动手编写组件。活动服务器组件的调用方法服务器组件和ASP内置对象应用程序(Application)、会话(Session)、请求(Request)、响应(Response)和服务器对象不同,不能直接使用,而必须首先被实例化。CreateObject函数创建一个对象并返回一个对对象的引用。这个函数的语法如下:SetobjVar=Server.CreateObject(class)Class表示创建什么样的对象Class的格式如下显示:application.className其中application是应用程序的名字,className是这种对象的名字。一个application可以由一个或者多个对象组成。他们可以在内部之间相互调用的。例如SetmyConnection=Server.Createobject(AdoDB.Recordset)注意:不能这样创建的Asp内建对象的实例,如下面的例子将导致一个错误%SetResponse=Server.CreateObject(Response)%你可以就通过在你的ASP脚本中使用活动服务器端组件,创建动态,交互的Web页面|存取数据库|附1.早期的数据库连接是非常困难的.因为各种数据库的格式都不一样,开发者得对他们所开发的每种数据库的底层API必须有深刻的了解.因此,能处理各种各样数据库的通用的API就应运而生了-―ODBC(OpenDatabaseConnectivity),ODBC是人们在创建通用API的早期产物。在程序中可以使用相同的代码访问不同的数据产品,因此有许多种数据库(如:Access,MS-SQLServer,Oracle,Informix等.)遵从了这种标准,被称为ODBC兼容的数据库.ODBC的具体作用如图所示:一般,odbc是由一套扩展的dll(dynamiclinklibrary动态链接库)组成,dll提供了标准的数据库应用程序设计接口。而odbc是建立在标准化的sql(structuredQueryLanguage,结构化查询语言)之上。所以通过odbc和sql,就可以编写独立于任何数据库产品的数据访问程序。2、用odbc连接数据库:odbc中提供三种dsn,它们的区别很简单:用户dsn只能用于本用户。系统dsn和文件dsn的区别只在于连接信息的存放位置不同:系统dsn存放在odbc储存区里,而文件dsn则放在一个文本文件中。在asp中使用它们时,写法如下:A.链接sqlserver:用系统dsn:connstr=DSN=dsnname;UID=xx;PWD=xxx;DATABASE=dbname用文件dsn:connstr=FILEDSN=xx;UID=xx;PWD=xxx;DATABASE=dbname还可以用连接字符串(从而不用再建立dsn):connstr=DRIVER={SQLSERVER};SERVER=servername;UID=xx;PWD=xxxB.链接access:用系统dsn:connstr=DSN=dsnname(或者为:connstr=DSN=dsnname;UID=xx;PWD=xxx)用文件dsn:connstr=FILEDSN=xx还可以用连接字符串(从而不用再建立dsn):connstr=DRIVER={MicrosoftAccessDriver};DBQ=d:\abc\abc.mdb3、缺陷:ODBC含有大量的低级的调用,因此开发ODBC应用程序还比较困难.开发者不得不将大量的精力花在底层的数据库通信中,而不能专注于他们所要处理的数据.OLEDB多年以来,ODBC已成为访问客户端/服务器数据库的标准。ODBC提供了基于标准的接口,接口要求SQL处理功能,并被优化用于基于SQL的方法。然而,如果要访问不使用SQL的非关系数据源(例如,不按照关系存储数据的MicrosoftExchangeServer)中的数据,情况会如何呢?进入OLEDB。OLEDB建立于ODBC之上,并将此技术扩展为提供更高级数据访问接口的组件结构。此结构对企业中及Internet上的SQL、非SQL和非结构化数据源提供一致的访问。(实际上,在访问基于SQL的数据时,OLEDB仍使用ODBC,因为对于SQL它是最优结构。)OLEDB由三个组件构成:数据使用者(例如,一个应用程序);包含并公开数据的数据提供程序以及处理并传输数据的服务组件(例如,查询处理器、游标引擎)。OLEDB是一个针对SQL数据源和非SQL数据源(例如,邮件和目录)进行操作的API。OLEDB为C和C++程序员及使用其他包含C样式函数调用语言的程序员提供绑定。有一些语言(例如VB和VBScript)不提供指针数据类型(地址变量)。因此,这些语言不能使用C样式绑定,而且不能直接调用OLEDB。它实际上包涵了MicrosoftJet数据库引擎,这是一个由MicrosoftAccess所使用的引擎,并允许应用程序开发者通过ODBC象直接链接到其它数据库一样,直接链接到Access表,当然也可以访问SQLSERVER数据库。Dao最适用于单系统应用程序或小范围本地分布使用。在此基础上,Microsoft推出了另一个数据访问对象模型:ADO(第一个是DAO)。ADO采用基于DAO和RDO的对象,并提供比DAO和RDO更简单的对象模型(尽管会产生一些冗余的功能,如现在进行一项操作时可以用不止一种方法)。ADO中的对象层次结构比DAO中的更平缓。ADO包含一些简化对数据存储区数据的访问任务的内置对象。而DAO是第一个面向对象的接口,DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成管理一个关系型数据库系统所需的全部操作的属性和方法,这其中包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等。应用程序连接到数据库可采取的许多途径。例如,VB程序员可以使用ADO将应用程序连接到OLEDB提供程序。如果数据库不支持OLEDB,应用程序可以通过ODBC连接。VisualC++(VC++)程序员可以使用ADO或直接通过OLEDB连接。这里有microsoft,数据访问技术的演变附end在ASP中,用来存取数据库的对象统称ADO对象(ActiveDataObjects)ADO包括的七个对象:●Command:定义对数据源进行操作的命令;●Connection:建立一个数据源的连接;●Error:提供数据访问错误的细节;●Field:表示一般数据类型的字段;●Parameter:表示Command对象的参数;●Property:表示由数据源定义ADO对象的动态特性;●Recordset:数据库命令结果集对象。主要对象有三种:Connection、Recordset和Command,其中Connection负责打开或连接数据库,Recordset负责存取数据表,Command负责对数据库执行行动查询(ActionQuery)命令和执行SQLServer的StoredProcedure。只依靠这三个对象还是无法存取数据库的,还必须具有数据库存取的驱动程序:OLEDB驱动程序和ODBC驱动程序。对于任何一种数据库都必须有相对应的OLEDB驱动程序和ODBC驱动程序,ADO对象才能对数据库进行存取。附:通过ADO访问数据库的基本步骤通常都是以下五步:●创建数据库链接●创建数据对象●操作数据库●关闭数据对象和链接附end|创建数据库链接|连接各数据库可以使用驱动程序,也可以使用数据源(dns方式),不过我建议大家使用驱动程序,因为使用驱动程序非常方便、简单,而使用数据源比较麻烦。下表有一定基础的朋友应该可以看懂.我们常用的数据库都不会有密码,所以下面的验证方面的参数可以省略.但一个链接的完成最起码应该有两个内容:驱动程序及数据库位置(dns方式生成的文件就包含了这两个内容).|数据库链接实例:|1.我们在一般情况下使用Access的数据库比较多,在这里我建议大家连接Access数据库使用下面的方法:dimconnsetconn=server.createobject(adodb.connection)conn.open=provider=microsoft.jet.oledb.4.0;&datasource=&server.mappath(../db/bbs.mdb)其中../db/bbs.mdb是你的数据库存放的相对路径!如果你的数据库和ASP文件在同一目录下,你只要这样写就可以了:dimconnsetconn=server.createobject(adodb.connection)conn.open=provider=microsoft.jet.oledb.4.0;&datasource=&server.mappath(bbs.mdb)有许多初学者在遇到数据库连接时总是会出问题,然而使用上面的驱动程序只要你的数据库路径选对了就不会出问题了。2.1.建立MdbRecordset对象。MDB数据库是一个完整的数据库,内部可能含有若干个数据表,在此函数中,Connection的作用是连接数据库,Recordset的作用是打开数据表。FunctionCreateMdbRecordset(数据库文件名,数据表名或Select语句)Dimconn,Provider,DBPath’建立Connection对象Setconn=Server.CreateObject(“ADODB.Connection”)Provider=“Provider=Microsoft.Jet.OLEDB.4.0;”DBPath=“DataSource=”&Server.MapPath(“数据库文件名”)’打开数据库conn.OpenProvider&DBPathSetCreateMdbRecordset=Server.CreateObject(“ADODB.Recordset”)’打开数据表CreateMdbRecordset.Open“数据表名”,conn,2,2EndFunction2.建立带密码的MDB数据库的Recordset对象。它的建立方式与建立不带密码的MDB数据库的Recordset对象类似,只是多了一个密码参数,即在与数据库连接时,必须给出密码信息。FunctionCreateSecuredMdbRecordset(数据库文件名,数据表名或Select语句,password)Dimconn,Provider,DBPath’建立Connection对象Setconn=Server.CreateObject(“ADODB.Connection”)Provider=“Provider=Microsof.Jet.OLEDB.4.0;”DBPath=“DataSource=”&Server.MapPath(“数据库文件名”)’连接数据库,注意要带有密码参