免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2284 | 回复: 12
打印 上一主题 下一主题

问个SQL的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-25 11:42 |只看该作者 |倒序浏览
需要写一个嵌C的SQL程序,

用了GROUP BY 的参数  
exec sql select  count(*)  from tablename  group by name

现在我需要把select 出来的结果存入程序定义的变量中,请问需要
怎么写啊?
我试过定义一个结构数组,但是只能保存select出来的第一组结果到数组
中,后面的就没有了

注:用的是sybase数据库

论坛徽章:
0
2 [报告]
发表于 2003-12-26 01:40 |只看该作者

问个SQL的问题

建立游标进行fetch, 但sybase我不懂

论坛徽章:
0
3 [报告]
发表于 2003-12-30 10:57 |只看该作者

问个SQL的问题

exec sql select count(*) from tablename group by name
=============== 是否应该这样 ==============??????
exec sql select name, count(*) from tablename group by name

论坛徽章:
0
4 [报告]
发表于 2003-12-30 16:11 |只看该作者

问个SQL的问题

用for循环,加上游标。

论坛徽章:
0
5 [报告]
发表于 2003-12-31 13:57 |只看该作者

问个SQL的问题

exec sql begin declare section;

long l_i;
exec sql end declare section;

l_i = 0;


exec sql select count(*) into :l_i from tablename ;

论坛徽章:
0
6 [报告]
发表于 2003-12-31 15:46 |只看该作者

问个SQL的问题

exec sql select count(*) from tablename group by name

exec sql select name, count(*) from tablename group by name
并没有什么大的区别,第一个是select 出来count的结果,
第二个select出来name和count的结果,

我试过,select肯定是成功的,但是需要在嵌C的程序中把结果保存在变量里,结果就不行了。定义数组也只能保存一个结果。

论坛徽章:
0
7 [报告]
发表于 2003-12-31 15:48 |只看该作者

问个SQL的问题

exec sql begin declare section;

long l_i;
exec sql end declare section;

l_i = 0;


exec sql select count(*) into :l_i from tablename group by name

如果这样用,在sybase里面,如果多组数据被select出来,
最后l_i里面存放的是最后一组count的结果

论坛徽章:
0
8 [报告]
发表于 2003-12-31 19:38 |只看该作者

问个SQL的问题

exec sql select count(*) from tablename group by name
=================================
这样select在实际中有意义吗?你不需知道name?
那你group by name来干吗?

论坛徽章:
0
9 [报告]
发表于 2004-01-01 01:03 |只看该作者

问个SQL的问题

定义游标吧。
exec sql begin declare section;
char *p_ch_a[BUFSIZE];
long *l_i;
exec sql end declare section;

exec sql declare cur_name cursor for
select count(*) into :l_i from tablename group by name;

exec sql open cur_name;

if (sqlca.sqlcode)
{
.
.
.
}

int ii = 0;

while(sqlca.sqlcode == 0)
{
p_ch_a[ii] = new char[BUFSIZE];
exec sql fetch cur_name into :p_ch_a[ii], l_i[ii];
ii++;
}

.
.
.

delete [] p_ch_a;
delete [] l_i;

论坛徽章:
0
10 [报告]
发表于 2004-01-01 18:50 |只看该作者

问个SQL的问题

你可以参考
exutils.c 内 ex_fetch_data()
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP