打印本文 打印本文 关闭窗口 关闭窗口
Powerbuilder中游标的应用
作者:武汉SEO闵涛  文章来源:敏韬网  点击数881  更新时间:2009/4/24 21:43:17  文章录入:mintao  责任编辑:mintao

Powerbuilder以其独特的体系结构,优异的性能,越来越受到广大软件开发人员的青睐。Powerbuilder所提供的许多技术,使用起来都令人得心应手,游标(Cursors)技术,便是其中之一。游标是一个与T-SQL SELECT 语句相关的符号名,它使用户可逐行访问由SQL Server返回的结果集。游标允许程序对由查询语句SELECT返回的行集合中的每一行执行相同或不同的操作,而不是对整个行集合执行同一个操作;提供对基于游标位置的表中的行进行删除和更新的能力。

  一、游标的用法:

  二、下面以一具体示例详细讲解游标的使用技术
  示例环境为:欲将工程表Project中的工程名称name字段与列表控件相捆绑,以实现相关数据的动态刷新。
   1. 创建一名为project的数据表: CREATE TABLE project ( id numeric(5), name varchar(50)) ; 其中id为项目编号、name为项目名称。   
   2. 新建一窗口 w_project,在窗口画板工作区增加一名为ddlb_name的下拉式列表框(DropDownListBox)
   3.在w_project的open事件中编写如下代码:
int li_id
string ls_name
//游标声明
declare lcur_name cursor for
 SELECT name
FROM project;
//游标打开 
open lcur_name;

if sqlca.sqlcode $#@60; 0 then
	MessageBox ("DataBase Error!",
 sqlca.sqlerrtext, exclamation!)
	return
end if 


ddlb_name.SetRedraw(false)

do while sqlca.sqlcode = 0
//提取
	fetch lcur_name into :ls_name;
	if sqlca.sqlcode = 0 then
//将提取的结果,逐行添加到下拉式列表框
		ddlb_name.AddItem (ls_name)
	elseif sqlca.sqlcode $#@60; 0 then
		MessageBox ("DataBase Error", sqlca.sqlerrtext, exclamation!)
		return
	else
		exit
	end if
loop

ddlb_id.SetRedraw(true)
//关闭游标
CLOSE lcur_name;
//释放游标
DEALLOCATE CURSOR lcur_name;
由此可见,游标作为面向集合的数据库管理系统(RDBMS)和面向行的程序设计之间的桥梁,使这两种处理方式通过它沟通起来。

打印本文 打印本文 关闭窗口 关闭窗口