Recordset中不容小觑的游标

2023-11-25 09:50
文章标签 游标 小觑 不容 recordset

本文主要是介绍Recordset中不容小觑的游标,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

                    刚接触ado时,没有感觉到游标有什么作用,所以没有怎么关注它,但是做学生管理系统时遇到了一个问题就是我使用recordset标签属性Bookmark总是会弹出:

花了一会时间终于找到了解决办法:

打开记录集的时候就会涉及到游标

例如:

   dim   Rs  as   ADODB. Recordset

  dim   cnn    as    ADODB.Connection

  rs.open trim$(SQL),cnn,adopenkeyset,odlockoptimic 

后面在定义一下cursorlocation属性

例:rs.cursorlocation=aduseclient

然后就能用了,这是因为如果不定义,一般默认的是aduseserver,无法实现该功能,是因为我的数据库sqlserver2000的问题!因为我使用sqlserver2008可以直接使用,不用申明cursorlocation

 

下面就总结了一下在结果集使用游标

一.作用:

            1.控制记录定位

              2.控制其他用户对数据库所作的更改的可视性

             3.控制数据可更新性

二.

1.cursorlocation    游标位置

       

               
 

类型

 
 

作用

 
 

adUseNone 

 
 

  没有使用游标服务。(该常量已过时并且只为了向后兼容才出现)

 
 

adUseServer 默认值

 
 

使用数据提供者的或驱动程序提供的游标。这些游标有时非常灵活,对于其他用户对数据源所作的更改具有额外的敏感性。但是,Microsoft  Client Cursor Provider(如已断开关联的记录集)的某些功能无法由服务器端游标模拟,通过该设置将无法使用这些功能

 
 

adUseClient

 
 

使用由本地游标库提供的客户端游标。本地游标服务通常允许使用的许多功能可能是驱动程序提供的游标无法使用的,因此使用该设置对于那些将要启用的功能是有好处的。AdUseClient  具有向后兼容性,也支持同义的

 

注:一般我们没有定义时,使用的都是默认值,有时都会遇到问题-有些功能无法使用,所以我们要注意了.

 2.cursortype    游标类型

    游标类型就涉及到recordset的open方法了.

     recordset.open    source,activeconnection,cursorType,lockType                  

   source:指定command的对象变量名,sql语句,表名,存储过程调用

  activeConnection:connection变量名,或字符串,包含connectionString参数

 

 cursorType(游标类型):

                   
 

类型

 
 

作用

 
 

adOpenForwardOnly(=0)

 
 

只读,且当前数据记录只能向下移动 

 

不支持分页、BookMark 

 
 

adOpenStatic(=3) 

 
 

可读写,当前数据记录可自由移动,可看到新增记录

 
 

adOpenKeySet(=1) 

 
 

只读,当前数据记录可自由移动 

 
 

adOpenDynamic(=2)

 
 

可读写,当前数据记录可自由移动 

 

 

lockType(锁类型)

                   
 

类型

 
 

作用

 
 

adLockReadOnly(=1)

 
 

缺省锁定类型,记录集是只读的,不能修改记录

 
 

adLockPessimistic(=2

 
 

悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。

 
 

adLockOptimistic(=3)

 
 

乐观锁定,直到用Update方法提交更新记录时才锁定记录

 
 

adLockBatchOptimistic(=4) 

 
 

批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。

 

注:

当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。对于一般的使用,乐观的锁定可能是最好的选择,       因为记录只被锁定一小段时间,数据在这段时间被更新。这减少了资源的使用。

 

  游标的功能和运用还有很多知识,自己只懂了这么一点,应该还有待于继续去学习!!

这篇关于Recordset中不容小觑的游标的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/423563

相关文章

ORACLE语法-包(package)、存储过程(procedure)、游标(cursor)以及java对Result结果集的处理

陈科肇 示例: 包规范 CREATE OR REPLACE PACKAGE PACK_WMS_YX IS-- Author : CKZ-- Created : 2015/8/28 9:52:29-- Purpose : 同步数据-- Public type declarations,游标 退休订单TYPE retCursor IS REF CURSOR;-- RETURN vi_co_co

Oracle(PL/SQL编程基础(PL/SQL程序块与PL/SQL语句)、异常、游标、数据类型)

一、PL/SQL Procedure Language/SQL是一门编程语言,Oracle公司对SQL进行了扩展,扩展后的SQL,就叫PL/SQL,功能更强大,面向过程语言,模块化编程语言,用于开发基于数据库的应用程序。下面关于PL/SQL编程基础主要介绍两点PL/SQL程序块于PL/SQL语句。 1、PL/SQL程序块 PL/SQL程序的基本单元,按照指定的方式,进行定义的

ABAP CURSOR游标的应用1

【应用场景】BW模块定时增量抽取SAP的销售案场收款单的业务主数据 【关键语法】 FUNCTION ZBWFM_ZTSD0011 .*"----------------------------------------------------------------------*"*"本地接口:*"  IMPORTING*"     VALUE(I_REQUNR) TYPE  SRSC

Oracle Procedure中使用游标cursor更新多表

Oracle Procedure中使用游标cursor更新多表 2007-04-20 16:51:43 分类: Oracle Oracle中写Procedure一直是Oracle开发中比较复杂的地方,但是掌握procedure 和cursor将使得你在Oracle开发中如鱼的水,真正体会Oracle的强大。下面通过我自己写的一个Procedure简单就procedure和cursor

AI写的不用游标派发明细数量例子

需求: 请在sqlserver设计数据库表以及编写sql实现如下需求:有个课目奖金表,登记各课目奖金池; 一个班有36位学生,每人每课目成绩不同,按学号顺序,如果成绩在90-100之间奖励200块,80-89之间奖励100块,70-79之间奖励50,其他不奖励,要考虑奖金是否派完的情况,最好不要用游标实现。首先,学生表要有金额字段,先更新金额字段然后显示这个表内容和各课目奖金池剩余金额 其实这

0011 数据库 游标

游标概念:游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。   个人理解: 游标:根据用户的需要筛

SQLserver中的游标的分类和游标的生命周期

SQLserver中的游标的分类 在 SQL Server 中,游标(Cursor)是一种数据库对象,用于逐行处理结果集中的数据。游标可以用于复杂的数据处理任务,尤其是那些不能通过简单的 SELECT 语句和 JOIN 操作完成的任务。SQL Server 提供了几种类型的游标,每种游标都有其特定的用途和性能特点。 只进游标 DECLARE STOCK_CURSOR CURSOR LOC

《SQL必知必会——第20、21、22课:管理事物处理、使用游标、高级sql特性》

第20课 管理事物处理        使用事务处理,通过确保成批的sql操作要么完全执行,要么完全不执行,来维护数据库的完整性。假如像微博加关注这样的场景,a关注b, a增加一个关注者,b增加一个粉丝,这个过程至少需要执行两条sql语句,如果两条只有一条执行成功,显然产生了脏数据,要么a的数据不对、要么b的数据不对。要保证整个操作完整,就要用到事物,上面场景,如果某一条出错,使用事

一文解决全部Oracle数据库的游标问题

一、什么是游标? 游标是一种数据库处理技术,允许查询结果集出来之前对其进行处理和操作。游标可以分为静态和动态游标2种类型。 静态游标在查询结果集出来之后不会改变,而动态游标则会随着数据库的变化而变化。 二、Oracle有2种的游标 1. 显式游标     是工程师明确声明的游标,允许程序员控制如何处理查询结果集。显式游标的优势是可以逐行处理查询结果集,而不是一次性将整

mssql2000游标循环次数对不上,如何解决??

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 问题描述   mssql2000游标循环次数对不上。 CREATE proc usp_ins_requisite_sc @bill char(16)