sql游标原理和使用方法37813

sql游标原理和使用方法37813

ID:6615801

大小:33.50 KB

页数:8页

时间:2018-01-20

sql游标原理和使用方法37813_第1页
sql游标原理和使用方法37813_第2页
sql游标原理和使用方法37813_第3页
sql游标原理和使用方法37813_第4页
sql游标原理和使用方法37813_第5页
资源描述:

《sql游标原理和使用方法37813》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SQL游标原理和使用方法37813我们知道关系数据库管理系统实质是面向集合的,在MSSQLSERVER中并没有一种描述表中单一记录的表达形式,除非使用where子句来限制只有一条记录被选中。因此我们必须借助于游标来进行面向单条记录的数据处理。由此可见,游标允许应用程序对查询语句select返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力;而且,正是游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,

2、使两个数据处理方式能够进行沟通。1.2游标种类MSSQLSERVER支持三种类型的游标:Transact_SQL游标,API服务器游标和客户游标。(1)Transact_SQL游标Transact_SQL游标是由DECLARECURSOR语法定义、主要用在Transact_SQL脚本、存储过程和触发器中。Transact_SQL游标主要用在服务器上,由从客户端发送给服务器的Transact_SQL语句或是批处理、存储过程、触发器中的Transact_SQL进行管理。Transact_SQL游标不支持

3、提取数据块或多行数据。(2)API游标API游标支持在OLEDB,ODBC以及DB_library中使用游标函数,主要用在服务器上。每一次客户端应用程序调用API游标函数,MSSQLSEVER的OLEDB提供者、ODBC驱动器或DB_library的动态链接库(DLL)都会将这些客户请求传送给服务器以对API游标进行处理。(3)客户游标客户游标主要是当在客户机上缓存结果集时才使用。在客户游标中,有一个缺省的结果集被用来在客户机上缓存整个结果集。客户游标仅支持静态游标而非动态游标。由于服务器游标并不支

4、持所有的Transact-SQL语句或批处理,所以客户游标常常仅被用作服务器游标的辅助。因为在一般情况下,服务器游标能支持绝大多数的游标操作。由于API游标和Transact-SQL游标使用在服务器端,所以被称为服务器游标,也被称为后台游标,而客户端游标被称为前台游标。在本章中我们主要讲述服务器(后台)游标。selectcount(id)frominfoselect*frominfo--清除所有记录truncatetableinfodeclare@iintset@i=1while@i<1000000

5、begininsertintoinfovalues('Justin'+str(@i),'深圳'+str(@i))set@i=@i+1end1.3游标操作使用游标有四种基本的步骤:声明游标、打开游标、提取数据、关闭游标。声明游标象使用其它类型的变量一样,使用一个游标之前,首先应当声明它。游标的声明包括两个部分:游标的名称;这个游标所用到的SQL语句。如要声明一个叫作Cus-tomerCursor的游标用以查询地址在北京的客户的姓名、帐号及其余额,您可以编写如下代码:DECLARECustomerCur

6、sorCURSORFORSELECTacct_no,name,balanceFROMcustomerWHEREprovince="北京";在游标的声明中有一点值得注意的是,如同其它变量的声明一样,声明游标的这一段代码行是不执行的,您不能将debug时的断点设在这一代码行上,也不能用IF...ENDIF语句来声明两个同名的游标,如下列的代码就是错误的。IFIs_prov="北京"THENDECLARECustomerCursorCURSORFORSELECTacct_no,name,balanceFR

7、OMcustomerWHEREprovince="北京";ELSEDECLARECustomerCursorCURSORFORSELECTacct_no,name,balanceFROMcustomerWHEREprovince〈〉"北京";ENDIF打开游标声明了游标后在作其它操作之前,必须打开它。打开游标是执行与其相关的一段SQL语句,例如打开上例声明的一个游标,我们只需键入:OPENCustomerCursor;由于打开游标是对数据库进行一些SQLSELECT的操作,它将耗费一段时间,主要取决

8、于您使用的系统性能和这条语句的复杂程度。如果执行的时间较长,可以考虑将屏幕上显示的鼠标改为hourglass。提取数据当用OPEN语句打开了游标并在数据库中执行了查询后,您不能立即利用在查询结果集中的数据。您必须用FETCH语句来取得数据。一条FETCH语句一次可以将一条记录放入程序员指定的变量中。事实上,FETCH语句是游标使用的核心。在DataWindow和DataStore中,执行了Retrieve()函数以后,查询的所有结果全部可以得到;而使用游标,我们只能逐

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。