| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3864 人关注过本帖
标题:求助关于mysql_row=mysql_fetch_row(res)返回值的处理的问题
只看楼主 加入收藏
the_27th
Rank: 2
等 级:论坛游民
帖 子:29
专家分:29
注 册:2012-7-10
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:1 
求助关于mysql_row=mysql_fetch_row(res)返回值的处理的问题
函数的本意:将qingdans里面特定的一列放到表ct_time里面,然后用select sum求和,接着使用mysql_fetch_row()获取select的结果,最后对返回的结果赋值给double类型数据,进行相关操作。
在百度查看了关于mysql_fetch_row()的用法。说是可以返回一个数据,然后每一列属性作为返回的结构体的元素。现在返回的只有一列sec(int(11)),所以想mysql_row[0]直接进行强制转换,结果运行是提示:error C2440: '=' : cannot convert from 'FILE *' to 'double'
double bd_huafei()
{
    MYSQL_RES *res;//代表所有查(SELECT, SHOW, DESCRIBE, EXPLAIN)询语句的结果
    //MYSQL_ROW *row;
    MYSQL_FIELD *fields;
    MYSQL_ROW mysql_row;
    int i,j;
    double bd_huafei,huafei_time, huafei_min;
    char drop_table[225]="drop table bd_time";
    char str[225]="create table bd_time as select (UNIX_TIMESTAMP(end_time) - UNIX_TIMESTAMP(start_time)) sec from qingdans where zhujiao_quhao=beijiao_quhao";
    char sqlstr[225]="select sum(sec) from bd_time where sec>0 and sec<36000";
   
    //重新建表之前,防止建表失败
    if (mysql_query(&mysql,drop_table))//向制定的数据库发送一条sql语言
    {
         printf("0.0.0.0.0.无法连接到数据库\n");
        getch();
    }
    if (mysql_query(&mysql,str))
    {
         printf("0.0.0.0.0.无法连接到数据库\n");
        getch();
   }
   if (mysql_query(&mysql,sqlstr))
   {
         printf("0.0.0.0.0.无法连接到数据库\n");
        getch();
   }
   if (!(res = mysql_store_result(&mysql)))//对于成功检索了数据的每个查询(SELECT、SHOW、DESCRIBE、EXPLAIN、CHECK TABLE等)                                        //必须调用mysql_store_result()或mysql_use_result() 。
   {
        printf("4.0无法连接到数据库\n");
        getch();
    }
   for(i=0;i<mysql_num_rows(res);i++)//获取表的总行数,
     {
      mysql_row=mysql_fetch_row(res);//检索一个结果集合的下一行
      fprintf(stderr, "%ld", mysql_row[0] );

     huafei_time=stderr;//运行是这里报错
      if( (int)huafei_time%60!=0)
      {
           huafei_min=huafei_time/60+1;
      }
      else
      {
            huafei_min= huafei_time/60;
      }
      if(huafei_time/60>3)
      {
           bd_huafei= huafei_time*0.1+0.9;
      }
      else
      {
           bd_huafei= huafei_time*0.3;
      }
     }
   mysql_free_result(res);
   drop_table[225]="drop table bd_time";
        if (mysql_query(&mysql,drop_table))//向制定的数据库发送一条sql语言
    {
         printf("0.0.0.0.0.无法连接到数据库\n");
        getch();
    }
   return bd_huafei;
}
搜索更多相关主题的帖子: 数据 convert double cannot 
2013-04-15 15:16
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1506
专家分:9241
注 册:2010-3-16
收藏
得分:20 
huafei_time=stderr;//运行是这里报错

huafei 是double类型
stderr是标准错误输出,类型是FILE *。
这2个不能转换。
2013-04-18 00:03
快速回复:求助关于mysql_row=mysql_fetch_row(res)返回值的处理的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034120 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved