
关于PB中查询语句的问题,急需!!!
integerBselectBfrompara_of_sectioninto:Bwherepara_of_section.typenoin(selecttypenofro...
integer B
select B from para_of_section into :B
where para_of_section.typeno in (select typeno from para_of_cave where para_of_cave.caveno = :s_caveNo) //s_caveno为全局变量
using SQLCA;
请问语句什么地方是错误的,谢谢! 展开
select B from para_of_section into :B
where para_of_section.typeno in (select typeno from para_of_cave where para_of_cave.caveno = :s_caveNo) //s_caveno为全局变量
using SQLCA;
请问语句什么地方是错误的,谢谢! 展开
1个回答
展开全部
select x from y into:aa
这种语法首先就是错的
你可能是想把搜索出来的B列信息保存到变量中,应该这样写
select x into:aa from y
但这样只能取单条记录,记录集如果超过一条就会报错,你需要先确保数据唯一!!!
如果你确实想取一组数据,建议你用动态游标,你可以查查资料,网上有很多
最后,
integer B
这种定义很不好,应该integer li_B
l代表局部变量i代表整型变量,一定要规范,不然你自己就懵了。
这种语法首先就是错的
你可能是想把搜索出来的B列信息保存到变量中,应该这样写
select x into:aa from y
但这样只能取单条记录,记录集如果超过一条就会报错,你需要先确保数据唯一!!!
如果你确实想取一组数据,建议你用动态游标,你可以查查资料,网上有很多
最后,
integer B
这种定义很不好,应该integer li_B
l代表局部变量i代表整型变量,一定要规范,不然你自己就懵了。
追问
谢谢你~我的语法很烂的~求动态游标的指导。。。~!
追答
没你想的那么难,百度上一大把
ls_sql=" select B from para_of_section where para_of_section.typeno in (select typeno from para_of_cave where para_of_cave.caveno = "+s_caveNo+")"
declare cur_seg dynamic cursor for SQLSA;
prepare SQLSA from :ls_sql;
open DYNAMIC cur_seg;
fetch cur_seg into :li_B;
do while sqlca.sqlcode=0
messagebox(string(li_B),'')
这里面就循环取出你需要的那个数值,你写代码处理就可以了
fetch cur_seg into :li_B;
loop
close cur_seg;
就是定义语句,定义游标,然后使用,很简单的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询