ehxz 发表于 2022-11-7 20:37:21

PowerBuilder(PB) 游标的两种使用方法

示例一

string ls_sub_storage

declare cur_sub_storage cursor for
select sub_storage from drug_sub_storage_dict WHERE sub_storage like '%药房%';
open cur_sub_storage;
fetch cur_sub_storage into :ls_sub_storage;
do while sqlca.sqlcode=0
ddlb_1.AddItem (ls_sub_storage)
fetch cur_sub_storage into :ls_sub_storage;
loop
close cur_sub_storage;


//示例二


string temp
declare mycur cursor for//定义游标mycur
select dept_name
from dept_dict;
open mycur;
do while true
fetch mycur into :temp;
if sqlca.sqlcode<>0 then exit
ddplb_1.additem(temp)
loop
close mycur;

未测试,来自:https://www.cnblogs.com/yh-xiaoxiami/p/15496058.html
(1)、用 for 循环实现游标

long ll_count = 10

//定义游标
string test

//声明游标
declare test cursor for

// SQL 语句
select 字段名 from表名 where 表达式 using sqlca;

//打开游标
open test;

for i=1 to ll_count
//获取数据
fetch test into :变量名;

//在这里写你的业务

next

//关闭游标
close test;
(2)、用 do while 循环实现游标

//定义游标
string test

//声明游标
declare test cursor for
   
// SQL语句
select 字段名 from 表名 where 条件 using sqlca;

//打开游标
open test;

//获取数据
fetch test into:字段名变量;

do while sqlca.sqlcode = 0

//在这里写你的业务

//再次获取数据
fetch test into:字段名变量;

loop

//关闭游标
close test;

FROM:https://www.yuque.com/zisay/powerbuilder/window#4f584ed2

surachai43 发表于 2022-12-5 22:20:19

Thank you.

swimchen 发表于 2023-9-29 02:44:48

其实我不建议使用游标,因为游标有个明显问题,就是数据循环读取处理中有客户端代码,不如直接DS得到数据后再写入更快
页: [1]
查看完整版本: PowerBuilder(PB) 游标的两种使用方法

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com