与mysql_store_result不兼容的指针类型

时间:2013-11-22 16:21:19

标签: mysql sql c pointers

我是C的新手,但我目前正在开发一个项目,我有一个编译器警告,但我看不出问题是什么,或者我怎么能修复它。

我正在执行一个mysql查询然后存储结果但是当我尝试获取要存储在MYSQL_ROW中的行时,我得到以下编译警告

  

警告:从不兼容的指针类型

分配

以下是我如何运行查询并存储结果

int processDrilldownData(char **reportParameterArray, FILE *csvFile, char *sql, MYSQL *HandleDB, MYSQL_RES *resultReport, MYSQL_ROW rowReport, int UserLevel, int ParentUserLevel, char *CustomerDisplayName, Restrictions *reportRestrictions, int totalLookupNumberCount, numberLookupStruct *numberLookup, int maximumLookupChars, char * statsOutputTable, int targetNumber, FILE * sqlDebugFile)
        {
        MYSQL_RES * audioResult = NULL;
            MYSQL_ROW * audioRow = NULL;
        sqlLen = asprintf(&sql, "SELECT Tmp.SwitchID, Tmp.CorrelationID, SUM(IF(Direction=2,1,0)) as SSPAudio, "
                "SUM(IF(Direction=1,Duration/100,0)) as SSPAudioDur FROM %s AS Tmp GROUP BY Tmp.SwitchID, "
                "Tmp.CorrelationID ORDER BY Tmp.SwitchID, Tmp.CorrelationID, Direction, SeizeUTC, SeizeCSec",
                statsOutputTable);
        if ((mysql_real_query(HandleDB, sql, sqlLen))) return 1;

            audioResult = mysql_store_result(HandleDB);

    audioRow = mysql_fetch_row(audioResult);
    }

感谢您提供的任何帮助

1 个答案:

答案 0 :(得分:1)

错误消息来自mysql_fetch_row()而不是mysql_store_result()mysql_fetch_row会返回MYSQL_ROW,请注意丢失的*

因此声明必须看起来像

MYSQL_ROW audioRow;