pb编程error c0081:duplicate variable:snum
stringfangshi,nei//接受查询方式和查询内容intnum=0,i//剩余数量ifddlb_1.text="none"thenMessagebox("错误提...
string fangshi,nei //接受查询方式和查询内容
int num=0,i //剩余数量
if ddlb_1.text="none" then
Messagebox("错误提示","请输入查询方式!")
else
fangshi=trim(ddlb_1.text)
end if
nei=trim(sle_sn.text) //要查询的内容
if fangshi="按作者" then
DECLARE snum CURSOR FOR
SELECT sheng
FROM book
where bzz=:nei;//---------------------------------------------------------------这里没报错
Open snum;//打开游标
//提取数据
FETCH snum into : i;
DO WHILE sqlca.sqlcode=0
num=num+i
FETCH snum into :i;
LOOP
close snum;//关闭游标
elseif fangshi="按书名" then
DECLARE snum CURSOR FOR
SELECT sheng
FROM book
where bname=:nei;//---------------------------------------------------------------这里报错
Open snum;//打开游标
//提取数据
FETCH snum into : i;
DO WHILE sqlca.sqlcode=0
num=num+i
FETCH snum into :i;
LOOP
close snum;//关闭游标
else
DECLARE snum CURSOR FOR
SELECT sheng
FROM book
where btype=:nei;//---------------------------------------------------------------这里报错
Open snum;//打开游标
//提取数据
FETCH snum into : i;
DO WHILE sqlca.sqlcode=0
num=num+i
FETCH snum into :i;
LOOP
close snum;//关闭游标
end if
sle_num.text=string(num) 展开
int num=0,i //剩余数量
if ddlb_1.text="none" then
Messagebox("错误提示","请输入查询方式!")
else
fangshi=trim(ddlb_1.text)
end if
nei=trim(sle_sn.text) //要查询的内容
if fangshi="按作者" then
DECLARE snum CURSOR FOR
SELECT sheng
FROM book
where bzz=:nei;//---------------------------------------------------------------这里没报错
Open snum;//打开游标
//提取数据
FETCH snum into : i;
DO WHILE sqlca.sqlcode=0
num=num+i
FETCH snum into :i;
LOOP
close snum;//关闭游标
elseif fangshi="按书名" then
DECLARE snum CURSOR FOR
SELECT sheng
FROM book
where bname=:nei;//---------------------------------------------------------------这里报错
Open snum;//打开游标
//提取数据
FETCH snum into : i;
DO WHILE sqlca.sqlcode=0
num=num+i
FETCH snum into :i;
LOOP
close snum;//关闭游标
else
DECLARE snum CURSOR FOR
SELECT sheng
FROM book
where btype=:nei;//---------------------------------------------------------------这里报错
Open snum;//打开游标
//提取数据
FETCH snum into : i;
DO WHILE sqlca.sqlcode=0
num=num+i
FETCH snum into :i;
LOOP
close snum;//关闭游标
end if
sle_num.text=string(num) 展开
1个回答
展开全部
你一共声明了三个游标,要用三个不同的名称。你可以把代码简化一下,所有动态游标,把“查询方式”也用变量带入动态游标查询语句,这样用一个游标就可以了。
pb动态游标应用实例:
将表base中的code字段中间两位为"01"的所有记录读取出来并分别进行相应处理。
STRING lsSQL,lsCode,lsName,lsFilter
LsFilter="01"
LsSQL="SELECT code,name FROM base WHERE substring(code,3,2)=?"
DECLARE cursor_base DYNAMIC CURSOR FOR SQLSA;
PREPARE SQLSA FROM:lsSQL;
OPEN DYNAMIC cursor_base USING :lsFilter;
FETCH cursor_base INTO :lsCode, :lsName;
DO WHILE SQLCA.SQLCODE=0
...
∥对满足条件的记录根据要求分别进行处理
....
FETCH cursor_base INTO:lsCode,:lsName;
LOOP
CLOSE cursor_base;
pb动态游标应用实例:
将表base中的code字段中间两位为"01"的所有记录读取出来并分别进行相应处理。
STRING lsSQL,lsCode,lsName,lsFilter
LsFilter="01"
LsSQL="SELECT code,name FROM base WHERE substring(code,3,2)=?"
DECLARE cursor_base DYNAMIC CURSOR FOR SQLSA;
PREPARE SQLSA FROM:lsSQL;
OPEN DYNAMIC cursor_base USING :lsFilter;
FETCH cursor_base INTO :lsCode, :lsName;
DO WHILE SQLCA.SQLCODE=0
...
∥对满足条件的记录根据要求分别进行处理
....
FETCH cursor_base INTO:lsCode,:lsName;
LOOP
CLOSE cursor_base;
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询