关于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;

请问语句什么地方是错误的,谢谢!
展开
 我来答
wy_1900
2012-10-08 · TA获得超过4503个赞
知道大有可为答主
回答量:4260
采纳率:63%
帮助的人:3502万
展开全部
select x from y into:aa
这种语法首先就是错的
你可能是想把搜索出来的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;

就是定义语句,定义游标,然后使用,很简单的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式