1 PB函数中游标的使用
列:string ls_bjfl
ddlb_1.reset() //清空下拉列表框内容
DECLARE cur_type CURSOR FOR//定义游标
select NEIRONG
from xt_gycs //表
where name='****'//条件
using sqlca; //使用默认数据对象
OPEN cur_type; //打开游标
FETCH cur_type INTO :ls_bjfl;//将游标的值赋给变量
do while sqlca.sqlcode=0 //判断游标执行是否成功(循环的意义是取完游标中的值)ddlb_1.additem(ls_bjfl);//如果成功,那么将值增加到下拉列表框中
FETCH cur_type INTO :ls_bjfl;//继续取游标值
loop
close cur_type;//关闭游标
在使用游标的时候注意每次从游标中只能取一个值赋给变量,游标中的值是一个数组型的即游标里可能存在多个不同的值。
2 PB中提交数据的两种方式和判断方式
1>删除时候直接用:
delete from 表where guid(行)=:ls_guidk(变量)
using sqlca;
那么提交的时候的判断用:
if sqlca.sqlcode=0 then
commit using sqlca;//提交数据
else
messagebox("提示!","数据库更新失败!失败原因:"+gtrans_w.sqlerrtext)
rollback using sqlca;
return
end if
2>用data window删除:
dw_name.deleterow(row) //row=0删除当前行(删除成功返回1,错误-1,为空返回null) 提交的时候的判断用:
if dw_name.update()=1 then
commit using sqlca;//提交数据
else
messagebox("提示!","数据库更新失败!失败原因:"+gtrans_w.sqlerrtext)
rollback using sqlca;
return
end if
总结:只要是对数据库直接操作的时候就用sqlca(事务对象).sqlcode=0来进行判断提交,如:delete,insert,update 等都是。只要是对数据窗口进行的操作都用dw_name.update()=1 来进行提交,如:deleterow(),insertrow(),setitem()等都是。