ASP中数据库操作中游标和加锁方式

数据|数据库|游标

一般而言,下面是个典型的打开数据库的过程。

< %

'游标类型

Const adOpenForwardOnly = 0

Const adOpenKeyset = 1

Const adOpenDynamic = 2

Const adOpenStatic = 3

'加锁类型

Const adLockReadOnly = 1

Const adLockPessimistic = 2

Const adLockOptimistic = 3

Const adLockBatchOptimistic = 4

%>

< % Set Conn = Server.CreateObject('ADODB.Connection') %>

< % Set RSMov = Server.CreateObject('ADODB.RecordSet') %>

< % Conn.Open 'Soc', '', '' %>

< % RSMov.Open sqlMov, Conn, adOpenKeyset, adLockReadOnly %>

游标使用时是比较灵活的,它有时用来描述一个记录集,有时又是用来描述当前记录集中某一条记录的指针。游标主要是用来建立一个关系数据库中行/列关系的一种SQL可利用的访问格。与游标有关系的技术术语还有一个叫Bookmark的。如果你选择的游标方式支持Bookmarks。数据库将提供有关记录数目的强大功能。在上面写出的那么多游标方式中,adOpenDynamic是没有太的用处的,虽然它提供实时显示数据库中的记录的所有更新操作的功能,但是因为并不是所有的数据库都支持该游标方式,没有移植性的游标方式对当前错综复杂的数据库来说真是用处不大。在实际的编程中,我相信大家使用得最频繁的是adOpenStatic方式,当然这种方式的缺点是不能够就、实时反应出数据库中内容改变时的状况。如果要想看到数据库被其它用户改变的状况,可使用adOpenKeyse方式(但是它只能够反应出被编辑的改变情况,也就是说不能够反映出新增和删除记录的改变情况。)

其实上面的内容大家一般都可以在微软的技术参考资料中找到,下面来说说在使用这些游标

方式和加锁方式时要注意到的问题。

1。首先要注意到的是这两种方式在混合使用时的问题,就是说你同时设置游标方式和加锁方式。

除非你是在使用Access数据库,一般而言当你混合使用时是并不能够得到你预期想要的游标方式和加锁方式的。例如,如果你同时将游标设置为adOpenStatic方式,而将加锁设置为adLockOptimistic,你将得不到adOpenStatic方式的游标,你这时使用的游标方式将是

adOpenKeyset,也就是说你使用ADO的话,它将返回adOpenKeyset的游标。

2。其次,游标和加锁的混合使用还会导致ADO返回的不是你想要的加锁方式,ADO会改变你的加锁

方式。例如,在默认状态下游标方式是adOpenForwardOnly,在使用这种游标方式的同时如果

你使用的加锁方式为-1(就是让数据源来判断加锁方式)或则adLockReadOnly,那么这种混合方式基本上不支持RecordSet的任何方法,也就是说RecordSet的任何方法将返回False

(你的recordcount,absoultpage,addnew,delete,update等都会返回-1,-1就是表示不支持该属性),但是这时如果你使用的是adOpenForwardOnly游标方式和其它的加锁方式混合,它反而会支持填加,删除和更新。

时间: 2024-08-24 06:02:05

ASP中数据库操作中游标和加锁方式的相关文章

用ASP访问数据库的几种常见方式

用ASP访问数据库的几种常见方式 ActiveX Data Objects (ADO) 是一项容易使用并且可扩展的将数据库访问添加到 Web 页的技术.可以使用 ADO 去编写紧凑简明的脚本以便连接到 Open Database Connectivity (ODBC) 兼容的数据库和 OLE DB 兼容的数据源.如果您是一个对数据库连接有一定了解的脚本编写人员,那么您将发现 ADO 命令语句并不复杂而且容易掌握.同样地,如果您是一个经验丰富的数据库编程人员,您将会正确认识 ADO 的先进的与语言

ASP中数据库安全问题之我见!

安全|数据|数据库|数据库安全|问题|安全|数据库安全   很多时候大家都为数据库的安全问题很是担心!一般大家都是把数据库的后缀弄的名字很复杂,然后把后缀名该为.ASP,但是这样是不是就绝对安全了呢!答案是肯定的,绝对不会安全的!因为别人一旦猜测出你的路径,那么把哪个数据库下载该名之后就可以用了!   有人又是用#*.asp作为数据库的存放方式,因为根据IE的编码原理,#后面的东西是不会下载的,但是一般的攻击人员都知道#在IE中的解码是%23,所以一旦他输入%23*.asp照样能给你下载你的数据

ASP中数据库安全问题之我见

安全|数据|数据库|数据库安全|问题 很多时候大家都为数据库的安全问题很是担心!一般大家都是把数据库的后缀弄的名字很复杂,然后把后缀名该为.ASP,但是这样是不是就绝对安全了呢!答案是肯定的,绝对不会安全的!因为别人一旦猜测出你的路径,那么把哪个数据库下载该名之后就可以用了!  有人又是用#*.asp作为数据库的存放方式,因为根据IE的编码原理,#后面的东西是不会下载的,但是一般的攻击人员都知道#在IE中的解码是%23,所以一旦他输入%23*.asp照样能给你下载你的数据库,所以以上方法都是不行

ASP中数据库调用常见错误解决

错误|解决|数据|数据库 下面是虚机维护中,经常碰到的一些ASP程序中的数据库调用的错误,现收集整理如下: 不能打开注册表关键字(8007000e) Microsoft OLE DB Provider for ODBC Drivers 错误 '8007000e' [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x11b4 Thread 0x1a4

ASP中数据库记录的选取与过滤

数据|数据库 一.说明 大多数最终用户都要求他们的Web方案能够提供某种报表能力.使用HTML和ASP,可以很容易地提供在表格中列出记录以及逐条浏览它们的能力.但用户往往要求能够通过下拉列表框(或其它选择方式)选择某一类别的记录,或者说,他们希望能够使用某种"查询界面"来建立和执行查询,而不必直接使用SQL.本文演示运用ASP技术建立可选择的记录过滤界面的一种方法.虽然这里讨论的解决方法相当简单,但使用类似的技术可以在任何Web页面提供复杂的查询能力. 在为任何一个解决方法编码之前,都

ASP中数据库调用中常见错误的现象和解决

 下面是虚机维护中,经常碰到的一些ASP程序中的数据库调用的错误,现收集整理如下: 不能打开注册表关键字(8007000e) Microsoft OLE DB Provider for ODBC Drivers 错误 '8007000e' [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x11b4 Thread 0x1a4c DBC 0x9d34

ASP中存储过程调用的两种方式及比较

比较|存储过程|存储过程 beerfroth(原作) 本人用sql server 和asp写了一个简单的留言本,在不断的尝试中发现,分页显示留言的时候,不同的执行方式,时间上的一些差别. 下面通过对比来看看几种方式的用时对比. 一,使用存储过程分页,这种情况又分为两种方式: 第一种,使用command对象,如下: Set Cmd=server.CreateObject("Adodb.Command")Cmd.ActiveConnection=connCmd.CommandText=&q

ASP中几种打开记录集方式的比较

比较|记录集 先定义conn.asp<% dim objConn dim strConn strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & chr(34) & Server.MapPath("data.mdb") & chr(34)  set objConn = server.createobject("adodb.connection") obj

ASP中存储过程调用的两种方式,以及不采用存储过程的方式比较

比较|存储过程 本人用sql server 和asp写了一个简单的留言本,在不断的尝试中发现,分页显示留言的时候,不同的执行方式,时间上的一些差别. 下面通过对比来看看几种方式的用时对比. 一,使用存储过程分页,这种情况又分为两种方式: 第一种,使用command对象,如下: Set Cmd=server.CreateObject("Adodb.Command")Cmd.ActiveConnection=connCmd.CommandText="ycuu_gb_getmsg&