在PowerBuilder中读取数据库的多行数据
来源:互联网 发布:筒仓设计软件 编辑:程序博客网 时间:2024/06/05 00:22
当需要从数据库中同时读取多条记录的时候,就需要使用游标进行操作。游标CURSOR是一个与SELECT语句相关联的符号名,游标的最大好处是可以让用户逐行的访问表中的记录。使用游标的典型的过程如下:
1)用DECLARE关键字声明游标。
2)使用OPEN语句打开游标
3)使用FETCH语句读取一行数据
4)处理数据
5)判断是否已经读取完所有的数据,未读完数据的话,GOTO步骤3
6)使用CLOSE关键字关闭游标
(1)DECLARE 语句
在使用游标之前,需要使用DECLARE语句声明游标,使用DECLARE语句声明游标的格式如下:
DECLARE CursorName CURSOR FOR SelectStatement
[USING TransactionObject]
其中CursorName是游标的名称,可以使用任何有效的标识符来表示;SelectStatement是任何有效的Select语句;TransactionObject是事务对象名,默认时使用SQLCA(SQL通信区).
例如,下面的语句声明了一个名字叫做student_sur的游标,该游标使用了默认事务对象SQLCA和一个变量le_sex,其作用就是选取某个性别的所有的学生的学号和姓名:
DECLARE student_cur CURSOR FOR
SELECT student,student_id,student.student_name
FROM student WHERE student.sex=:ls_sex
DECLARE是个声明语句,可以像声明标准数据类型那样把游标声明称局部变量,实例变量或者是全局变量.它并不真正的执行,因此在DECLARE语句后,也无须检查事务对象的SQLCode属性.值得注意的是DECLARE虽然是一个声明语句,但是仍旧需要使用分号作为结束符.
(2)OPEN语句
OPEN语句打开已经声明的游标并且执行相应的SELECT语句,其语法格式是:
OPEN CursorName;
其中,CursorName是已经使用DECLARE语句声明的游标名,例如:
open student_cur;
(3)FETCH语句
FETCH语句从游标中读取当前记录并且把它保存到指定的变量中,只要数据库支持,还可以使用FECTH FIRST,FETCH PRIOR,FETCH LAST。FETCH语句的语法格式为:
FETCH CursorName INTO VariableList
其中,CursorName是OPEN语句打开的游标名;VariableList是与Select语句中选择字段相对应的变量列表,例如,对前面DECLARE语句说明的游标,可以使用下面的语句读取记录:
string ls_student,ls_student_name
FETCH student_cur INTO :ls_student_id,:ls_student_name;
每执行一次FETCH语句都会从游标中读取一行记录,需要读取多行记录时需要反复调用FETCH语句.执行FETCH语句之后,应该检查事务对象的SQLCode属性,该属性为0的时候,表明成功的读取当前的记录,如果SQLCode为-1的时候,表明读取当前的记录失败,为100的时候,表明已经读取完了所有的记录.
(4)CLOSE语句
CLOSE语句关闭先前打开的游标.其语法格式为
CLOSE CursorName;
其中,Cursorname是先前打开的游标的名称.
关闭游标之后,就不能再使用FETCH语句从游标中读取数据了,下面是关闭游标的示例:
CLOSE student_cur;
- 在PowerBuilder中读取数据库的多行数据
- 读取CEdit中某一行数据的方法 CEdit::LineLength
- 在表中插入多行数据
- Shell 中读取文件的行数
- Shell 中读取文件的行数
- PowerBuilder从数据库读取并显示图片。
- 获取DataGridView中checkBox选中的多行数据并将选中的行插入数据库
- datagrid多行数据同时插入数据库中
- 在PowerBuilder中播放声音
- Struts中多行数据的提交
- Struts中多行数据的提交
- 在PowerBuilder中实现菜单条级权限的设置
- 在PowerBuilder中操作BLOB数据的技巧
- 在POWERBUILDER中使用WINSOCK控件的方法
- 在PowerBuilder中实现动态菜单的方法
- 在PowerBuilder中利用DataStore实现查询条件的记忆
- 在PowerBuilder中操作BLOB数据的技巧
- 在PowerBuilder中操作BLOB数据的技巧
- 正则表达式
- Eclipse下安装myeclipse插件
- java枚举
- QT4 DESIGNER 初体验
- 敏捷开发与极限编程
- 在PowerBuilder中读取数据库的多行数据
- 微软会对 Windows Phone 7 收费吗?
- 线程和信号
- Java泛型
- amix the lucky stiff(vimrc)
- exe4j打包+Eclipse打包插件说明 GUI项目打包EXE文件的总结
- 有关strncpy,memcpy,memmove的比较
- tomcat和eclipse安装
- C#系列一