求助关于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;
}