大家来看看我的动态sql 语句有什么问题?

wangmin_yjitx 2003-05-08 05:41:31
dec{2} ldec_max,ldec_min,ldec_averate//最高分、最低分、平均分
string sqlstatement
sqlstatement = "select max(" + ls_kemu + "), min("+ls_kemu+"), aver("+ls_kemu+") from stu_score where classname=:+condition2
prepare sqlsa from :sqlstatement;
open dynamic my_cursor;
fetch my_cursor into :ldec_max,:ldec_min,:ldec_averate;
close my_cursor;
sle_max.text = string( ldec_max )
sle_min.text = string( ldec_min )
sle_aver.text= string(ldec_averate)
sqlstatement=" select count(*) from stu_score where stu_score.class_name=:"+condition2
prepare sqlsa from :sqlstatement;
open dynamic my_cursor;
fetch my_cursor into :renshu;
close my_cursor;
sle_renshu.text= string(renshu)

其中condition2为一字符串全局变量,是指具体的班级名称,
...全文
49 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangmin_yjitx 2003-05-13
  • 打赏
  • 举报
回复
谢谢大家,结贴
wangmin_yjitx 2003-05-13
  • 打赏
  • 举报
回复
问题终于解决了,原来应该这样:dec{2} ldec_max,ldec_min,ldec_averate//最高分、最低分、平均分
string sqlstatement
sqlstatement = "select max(" + ls_kemu + "), min("+ls_kemu+"), aver("+ls_kemu+") from stu_score where classname=?”
prepare sqlsa from :sqlstatement;
open dynamic my_cursor using :condition2;
fetch my_cursor into :ldec_max,:ldec_min,:ldec_averate;
close my_cursor;
sle_max.text = string( ldec_max )
sle_min.text = string( ldec_min )
sle_aver.text= string(ldec_averate)

888888888888 2003-05-11
  • 打赏
  • 举报
回复
???
wangmin_yjitx 2003-05-11
  • 打赏
  • 举报
回复
但为什么ls_kemu不需要加单引号,它也是变量啊?
juwuyi 2003-05-11
  • 打赏
  • 举报
回复
dec{2} ldec_max,ldec_min,ldec_averate//最高分、最低分、平均分
string sqlstatement
//******************************************
sqlstatement = "select max(" + ls_kemu + "), min("+ls_kemu+"), aver("+ls_kemu+") from stu_score where classname=:+condition2
/*以上应该改为:
sqlstatement = "select max(" + ls_kemu + "), min("+ls_kemu+"), aver("+ls_kemu+") from stu_score where classname='"+condition2+"'"
*/
prepare sqlsa from :sqlstatement;
open dynamic my_cursor;
fetch my_cursor into :ldec_max,:ldec_min,:ldec_averate;
close my_cursor;
sle_max.text = string( ldec_max )
sle_min.text = string( ldec_min )
sle_aver.text= string(ldec_averate)
//******************************************
sqlstatement=" select count(*) from stu_score where stu_score.class_name=:"+condition2
/*以上应该改为:
sqlstatement=" select count(*) from stu_score where stu_score.classname='"+condition2+"'"
*/

prepare sqlsa from :sqlstatement;
open dynamic my_cursor;
fetch my_cursor into :renshu;
close my_cursor;
sle_renshu.text= string(renshu)

其中condition2为一字符串全局变量,是指具体的班级名称,

xirumin 2003-05-11
  • 打赏
  • 举报
回复
condition2是变量,而你想取的是condition2的内容,而不是'condition2'这一串
wangmin_yjitx 2003-05-11
  • 打赏
  • 举报
回复
我去看看, 不过 condition2已经是字符串,为什么还要加单引号
wangmin_yjitx 2003-05-11
  • 打赏
  • 举报
回复
我已改了,但还是不行,结果还是全部是0
yl_yz 2003-05-10
  • 打赏
  • 举报
回复
楼上说的对,你没写
declare my_cursor dynamic cursor for sqlsa;
还有
sqlstatement=" ...where stu_score.class_name='"+condition2+"'"
xirumin 2003-05-10
  • 打赏
  • 举报
回复
一时看不出有什么毛病,写没写类似的语句
declare my_cursor dynamic cursor for sqlsa;
wangmin_yjitx 2003-05-09
  • 打赏
  • 举报
回复
ls_kemu也是一字符串变量,代表的字段名。
wangmin_yjitx 2003-05-08
  • 打赏
  • 举报
回复
up
wangmin_yjitx 2003-05-08
  • 打赏
  • 举报
回复
结果都是0,我查看数据库,符合条件的记录都有。
xjbs 2003-05-08
  • 打赏
  • 举报
回复
出什么错?

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧