动态游标中的分组统计问题

xiongyp 2003-08-21 11:40:35
以下要实现:从表中按不同的字段分组,并得到人数总数.将字段变量代入问号好象不行,输出sqlerrtext为不能打开游标,请教如何解决?

string Emp_sex_var //字段变量
Emp_sex_var = "sex"//性别
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;

integer li_count
string ls_sex

string sqlstatement

sqlstatement = "SELECT ?,count(*) FROM employee GROUP BY ?"

PREPARE SQLSA FROM :sqlstatement ;

OPEN DYNAMIC my_cursor using :Emp_sex_var ;

FETCH my_cursor INTO :ls_sex,:li_count;

CLOSE my_cursor ;
...全文
93 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiongyp 2003-08-22
  • 打赏
  • 举报
回复
jdsnhan的完全正确,也向独孤狂客表示感谢。
我是借用pb的帮助中动态sql的第3种例子,哪知不对,如下:
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;

integer Emp_id_var

string Emp_state_var = "MA"

string sqlstatement

sqlstatement = "SELECT emp_id FROM employee "&

+"WHERE emp_state = ?"

PREPARE SQLSA FROM :sqlstatement ;

OPEN DYNAMIC my_cursor using :Emp_state_var ;

FETCH my_cursor INTO :Emp_id_var ;

CLOSE my_cursor ;
先给分,各位如有兴趣能说说为什么不能这样用吗?再次感谢!
polugen 2003-08-21
  • 打赏
  • 举报
回复
OPEN DYNAMIC my_cursor using :Emp_sex_var ;不对
USING后面只能是事物
aty283 2003-08-21
  • 打赏
  • 举报
回复
up
jdsnhan 2003-08-21
  • 打赏
  • 举报
回复
"SELECT ?,count(*) FROM employee GROUP BY ?"
此处你用的变量吗?如果是变量,那应该区分开常量与变量
"select " + 变量 + " from emploee group by " + 变量
另外,如果楼上说的 OPEN DYNAMIC my_cursor using DESCRIPTOR SQLDA;

754

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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