新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > 数据库 > sql server教程 > 正文:教你快速的掌握如何使用定位操作更改行

教你快速的掌握如何使用定位操作更改行

新客网 XKER.COM 2007-10-25 来源: shuijing 收藏本文

可更新游标支持通过游标更新行的数据修改语句。当定位在可更新游标中的某行上时,您可以执行更新或删除操作,这些操作针对用于在游标中建立当前行的基表行。这些就称为定位更新。

 

定位更新在打开游标的同一个连接上执行。这就允许数据修改共享与游标相同的事务空间,并且使游标保持的锁不会阻止更新。

 

有两种方法在游标中执行定位更新:

 

◆UPDATE 或 DELETE 语句中的 Transact-SQL WHERE CURRENT OF 子句。

 

 

◆数据库 API 定位更新函数或方法,如 ODBC SQLSetPos 函数。

使用 Transact-SQL 执行定位更新:Transact-SQL WHERE CURRENT OF 子句典型用于 Transact-SQL 存储过程、触发器以及脚本(当需要根据游标中特定行进行修改时)。存储过程、触发器、或脚本将:

 

DECLARE 和 OPEN 游标。

 

用 FETCH 语句在游标中定位于一行。

用 WHERE CURRENT OF 子句执行 UPDATE 或 DELETE 语句。用 DECLARE 语句中的 cursor_name 作为 WHERE CURRENT OF 子句中的 cursor_name。

使用 API 执行定位更新:因为通过 OLE DB、ADO 和 DB-Library API 函数和方法创建的游标没有名称,所以它们不能在 WHERE CURRENT OF 子句里使用。然而,ODBC 支持使用 SQLGetCursorName 函数为 API 服务器游标得到名称。在设置游标特性并通过执行 Transact-SQL 语句打开游标后,可使用 SQLGetCursorName 函数得到游标的名称。在游标中定位后,引用由 SQLGetCursorName 返回的名称执行带有 WHERE CURRENT OF 子句的 UPDATE 或 DELETE 语句。但不建议使用此方法。最好使用 ODBC API 中的定位更新函数。

 

数据库 API 支持两种不同的方法对API 服务器游标执行定位操作。ODBC 和 DB-Library 共享一个模型,OLE DB 和 ADO 共享另一个。

 

在 ODBC 和 DB-Library 中,将游标中的列与程序变量绑定,然后在游标中定位到特定行。如果执行定位更新,在程序变量中将数据值更改为新值。调用这些函数以执行定位操作:

 

◆ODBC:SQLSetPos 函数

 

 

◆DB-Library:dbcursor 函数

这些函数具有下列选项:

 

SQLSetPos(SQL_POSITION)

仅用于 ODBC,将 ODBC 游标定位到当前行集中的特定行。

 

SQLSetPos(SQL_REFRESH)、dbcursor(CRS_REFRESH)

使用游标当前所定位行的值刷新被绑定到结果集列上的程序变量。

 

SQLSetPos(SQL_UPDATE)、dbcursor(CRS_UPDATE)

 

使用绑定到结果集列上的程序变量中所存储的值来更新游标中的当前行。

 

SQLSetPos(SQL_DELETE)、dbcursor(CRS_DELETE)

 

共2页: 上一页 [1] [2] 下一页
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐