PowerBuilder实用教程第13章 游标.pptxVIP

  • 15
  • 0
  • 约2.75千字
  • 约 17页
  • 2020-05-22 发布于江苏
  • 举报
PowerBuilder实用教程(第5版)第13章 游 标——声明游标声 明 游 标像使用其他类型的变量一样,使用一个游标之前,首先应对它进行声明。游标的声明包括游标的名称和这个游标所用到的SQL语句两个部分。格式:DECLARE 游标名 CURSOR FOR sql语句;【例】声明一个名为“Student”的游标用于查询家庭地址在南京的学生的姓名、学号及其性别,可以编写如下代码:DECLARE Student CURSOR FOR SELECT name,id,sex FROM student_table WHERE addr=南京;声 明 游 标如同其他变量的声明一样,声明游标的这一段代码行是不执行的,不能将debug时的断点设在这一代码行上,也不能使用IF...END IF语句声明两个同名的游标,如下列代码就是错误的:IF addr=南京THEN DECLARE student CURSOR FOR SELECT name,id,sex FROM student_table WHERE addr=南京;ELSE DECLARE student CURSOR FOR SELECT name,id,sex FROM student_table WHERE addr南京;END IFPowerBuilder实用教程(第5版)第13章 游 标——打开游标打 开 游 标游标声明后,在进行其他操作之前,必须打开它。打开游标时执行与其相关的一段SQL语句。格式:OPEN 游标名;例如,打开本章【例】中声明的一个游标“student”,只需输入:OPEN student;由于打开游标是对数据库进行一些SQL SELECT的操作,所以它将耗费一段时间,时间的长短主要取决于所使用的系统性能和这条语句的复杂程度。如果执行的时间较长,则应该改变屏幕上显示的鼠标。PowerBuilder实用教程(第5版)第13章 游 标——提取数据提 取 数 据在DataWindow和DataStore中,执行了Retrieve()函数以后,查询的所有结果都可以得到。而使用游标,则只能逐条记录得到查询结果。格式:FETCH 游标名 INTO :变量1, :变量2,..., :变量n;已经声明并打开一个游标后,就可以用FETCH语句将数据放入任意的变量中。例如:FETCH student INTO :s_name,:s_id,:s_sex;提 取 数 据通过检测SQLCA.SQLCODE的值,可以得知最后一条FETCH语句是否成功。当SQLCODE值为0时,表明一切正常;为100时表示没找到;而其他值均表明操作出了问题。这样,可以编写如下代码:FETCH student INTO :s_name,:s_id,s_sex;;DO WHILE sqlca.sqlcode = 0 //对读取的记录进行处理 lb_1.additem(s_id1+----+s_name1+----+s_sex) ... //读取下一条记录 FETCH student INTO :s_name,:s_id,s_sex;;LOOPPowerBuilder实用教程(第5版)第13章 游 标——关闭游标关 闭 游 标在游标操作的最后不要忘记关闭游标,这是一个良好的编程习惯,以使系统释放游标占用的资源。格式: CLOSE 游标名;例如 CLOSE student;PowerBuilder实用教程(第5版)第13章 游 标——使用条件子句使用条件子句前面曾经提到过,DECLARE语句的作用只是定义一个游标,在OPEN语句中这个游标才会真正地被执行。因此,可以在DECLARE的Where子句中加入变量作为参数:DECLARE Student CURSOR FOR SELECT name,id,sex FROM student_table WHERE addr=:s_addr;PowerBuilder实用教程(第5版)第13章 游 标——编程实例编 程 实 例使用游标将数据库“XSCJ”中“XS”表的记录显示在窗口的“ListBox”中,如图13.1所示。创建一个“curso.pbl”,其“application”为“curso”;再新建一个“w_curso”窗口,在该窗口中创建一个“ListBox”,命名为“lb_1”,一个单行编辑框“sle_1”,一个“CommandButton”,命名为“cb_1”。编 程 实 例(1)在“curso”的“Open”事件中输入如下代码:SQLCA.AutoCommit = TRUEsqlca.DBMS= odbcsqlca.database= sqlca.servername = sqlca.dbparm= Connect

文档评论(0)

1亿VIP精品文档

相关文档