分享
 
 
 

ASP中的数据库基础知识

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

一、 ADO概述

ADO(ActiveX Data Object)是一组优化的访问数据库的专用对象集,它为ASP提供了完整的站点数据库访问解决方案。ADO对象在服务器端执行,并向客户端提供含有数据库信息的内容,客户端也可以根据指定的权限返回参数来对数据库进行读写等操作。ADO的特点就是执行速度快、使用简单、低内存消耗且占用硬盘空间小。

因为ADO是通过ODBC来对数据库进行访问的,所以它可以连接各种支持ODBC的数据库,如Access、SQL Server、Oracle、Informix等。在使用ADO之前要先在ODBC中添加相应的数据库驱动程序,并创建相应的DSN(数据源名)。ADO 中包含许多对象,其中Connection对象和Recordset对象主要用于控制数据库存取,要建立一次数据库访问首先要创建一个 Connection对象,然后用基于这个Connection对象的Recordset对象来完成对数据库从操作。

二、 Connection对象

Connection对象代表了一个打开的同OLE DB数据源的连接,它有点类似于client/server数据库应用中同Server间的真实网络连接,我们可以独立于任何其它对象建立一个 Connection对象。注意,在引用一个Connection之前首先要创建这个Connection对象,其语法如下,其中connection为引用该Connection对象的变量:Setconnection=Server.CreatObject(“ADODB.Connetcion”)

Connection对象中包含有多个属性,下面是几个常用的属性,注意只能在创建Connection对象之后且该对象被打开前改变其属性。语法如:Connection.属性=属性值

1. ConnectionString一个包含连接信息的字符串,将一个“DSN名” 或是一个由“argument = value”组成的字符串传递给ConnectionString属性,可以为Connection对象指定一个数据源,此属性可以在连接打开前设置,也可以在“Open”命令中设置。ADO中的argument有以下几个:

参数 描述

Provider 该Connection对象的创建者,默认值为MSDASQL (Microsoft ODBC Provider for OLE DB)

Data Source 指定该Connection的ODBC数据源(DSN)

User 设置打开该连接的用户名

Password 设置打开该连接时所需要的密码

File Name 由创建者指定的包含该Connection信息的文件

2. Mode

可以设置为以下常量的参数,用来设置用户对当前连接的访问权限。

常量 值 含义

adModeUnknown 0 未设置对数据库的操作权限(默认)

adModeRead 1 只读

adModeWrite 2 只写

adModeReadWrite 3 可以读写

adModeShareDenyRead 4 禁止对数据源建立其它的只读连接

adModeShareDenyWrite 8 禁止对数据源建立其它的只写连接

adModeShareExclusive 12 禁止对数据源建立其它的读/写连接

adModeShareDenyNone 16 禁止对数据源建立其它的任何连接

3. ConnectionTimeout 指定等待建立连接的时间,若超时则中断请求并给出错误信息。等待时间以秒为单位,可以将一个整数值赋给这个参数,默认值是15秒。设置 ConnectionTimeout属性可以在网络拥挤或服务器忙时给出提示,防止无休止的等待。若将ConnectionTimeout的值设置为0,则系统一直等待直到连接建立成功。

4. CommandTimeout 指定当执行“Execute”命令时的等待时间,若超时则中断请求并给出错误信息。等待时间以秒为单位,可以将一个整数值赋给这个参数,默认值是30秒。使用Connection对象的Open、Close和Execute方法可以完成从建立数据库连接,到操纵数据库和最后关闭连接的所有数据库访问动作。

. Open Open方法打开Connection对象同数据源之间的物理连接,语法如下:

connection. Open ConnectionString,UserID, Password

connection 代表一个对象变量,用于引用已经存在的Connection对象。

ConnectionString 可选变量,含义同前面提到的ConnectionString属性。

UserID 可选变量,是一个包含建立连接时使用的用户名的字符串。

Password 可选变量,是一个包含建立连接时所使用的密码的字符串。

. Close 用Close方法可以关闭一个已经打开的Connection对象,但是此时该Connection对象并没有被从内存中删除,我们还可以改变它的属性参数或是打开这个对象,若要真正释放该对象占用的内存空间需要将这个对象设置为“Nothing”。如果基于此Connection对象还打开了其它的 RecordSet对象,在关闭Connection对象的同时会关闭所有相关的recordSet对象。

. Execute 使用Execute可以根据已经打开的Connection对象执行SQL语句或一个存储过程,并可以用一个RecordSet对象指向得出的结果集合。Execute命令的语法如下:

connection.Execute CommandText, RecordsAffected, Options

CommandText 字符串,包含将要执行的SQL语句、表名或存储过程。

RecordsAffected 可选参数,一个长整型变量,操纵执行完后,其返回值为该操纵影响的记录的数量。

Options 可选参数,描述CommandText中包含何种操纵参数,有以下可用值:

常量 值 含义

adCmdText 1 CommandText是一个用SQL语句描述的命令

adCmdTable 2 CommandText是一个表名

adCmdStoredProc 4 CommandText是一个存储过程

adCmdUnknown 8 CommandText是一个未知的命令类型

使用Connection对象的各种方法可以完成对数据库的各种访问动作,比如添加、删除、更新和选取等操作。

三、 Recordset对象

虽然使用Execute方法已经可以实现对数据库的各种操作,但是在编程中我们更常用的还是RecordSet对象,ADO中的内建对象 RecordSets是数据库访问的主要接口,它指向数据表中的一个记录集,它有点类似于C语言中指针的概念,在任何时刻一个RecordSets对象只能指向一条记录。

Recordset对象提供了许多方法和属性来方便对数据库的操作,下面是一些常用的Recordset方法及属性。

* CursorType 应该在Recordset对象打开之前设置这个属性,它决定了Recordset的游标类型,CursorType可以为以下值:

常量 值 含义

adOpenStatic 3 静态游标,它是所访问的记录集的拷贝,看不到其它用户对数据库的修改

AdOpenDynamic 2 动态游标,可以看到其它用户对数据库的添加、删除和修改等操作,允许 游标向前或向后移动

adOpenKeyset 1 关键字游标,与动态游标相同,但是只能看到其它用户对数据库的更新, 看不到添加和删除结果

adOpenForwardOnly 0 向前游标,同静态游标相同,但是游标只能向前移动

* BOF Recordset属性,在当前Recordset对象指向记录集中的第一条记录之前时BOF返回值为True(-1),反之为False(0)。

* EOF Recordset属性,当当前Recordset对象指向记录集中的最后一条记录之后BOF返回值为True(-1),反之为False(0)。

* RecordCount Recordset属性,RecordCount返回值为一个long型值,等于记录集中记录的数量。

* Open 在使用Recordset对象之前首先要用Open方法打开一个指向记录集合的游标,其语法如下: recordset.Open Source, ActiveConnection, CursorType, LockType, Options

recordset: Recordset对象变量

Source: 可选参数,用于选取记录集,可以是SQL语句、表名或存储过程

ActiveConnection: 可选参数,一个变量代表一个打开的Connection对象

CursorType :可选参数,指定游标类型,默认值为“0”

LockType 可选参数,指定编辑记录集时的锁的类型如下:

常量 值 含义

AdLockReadOnly 1 只读,不可修改记录集

AdLockPessimistic 2 当编辑记录集时锁定数据库,禁止其它用户访问

AdLockOptimistic 3 只有使用Update方法时才锁定数据库

AdLockBatchOptimistic 4 只有使用UpdateBatch方法时才锁定数据库

Option: 可选参数,同Connection的Open方法中的Option参数。

注意:在使用Recordset对象时可以不建立Connection对象,而是在Open方法中直接传递连接参数,事实上这种情况下ADO还是创建了一个Connection对象,只是并不把它指派给对象变量。但是如果要用一个Connection对象建立多个Recordset对象,就必须建立对象并把它指派给一个Connection对象变量。

* AddNew 新建并初始化一个新记录,并将RecordSet游标指向该记录。

* Delete 删除游标指向的当前记录。

* Update 保存对当前记录集所作的任何修改。

* MovePrevious Recordset方法,使Recordset对象指向上一条记录。

* MoveNext Recordset方法,使Recordset对象指向下一条记录。

* MoveFirst Recordset方法,使Recordset对象指向第一条记录。

* MoveLast Recordset方法,使Recordset对象指向最后一条记录。

* Close Recordset方法,关闭当前的Recordset对象以释放占用的系统资源。

* 用Recordset变量(“字段名")的形式来引用数据库中的数据。

四、 Field对象

每个Recordset对象中都有一个由Field对象组成的Fields集合,其中每个Field对象都代表Recordset中的一个字段,在*.asp文件中可以用以下形式引用这些字段的值:

recordset.Fields.Item(0) recordset.Fields.Item(“name”)

recordset.Fields(0) recordset.Fields(“name”)

recordset(0) recordset(“name”)

recordset![name]

其中recordset代表一个recordset对象,“name”为数据表中的字段名,“0”表示一个整数,一个recordset中的Field对象都有一个序号,在引用这个字段时可以用这个序号代替这个字段的字段名,这就允许我们在一个循环中使用一个整型变量来依次引用每一个字段的值,而不必写出每个字段的字段名,这样就增加了应用程序的通用性。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有