假设存储过程如下:CREATE DEFINER = `root`@`localhost` PROCEDURE `sp1`(IN `dd` date)
BEGIN
#Routine body goes here...
     if dd > curdate() then
              select dd ;
     else
              select curdate;
     end if;
END;
我该如何调用此过程并得到返回的记录集?

解决方案 »

  1.   

    mysql_query("call sp1('2010-10-01')";
    按后直接读这个记录集就行了。
      

  2.   

      //查询
        mysql_query(&myData,("call sp1('2010-10-01'))";;
        //存储结果集
        result=mysql_store_result(&myData);    //如果结果集为空,则返回0
        result==NULL
      

  3.   

    mysql_query(&myData,"call sp1('2010-10-01')");
      

  4.   

    不动呀,执行接下来的这句:result=mysql_store_result(&myData);结果为result 为空,
      

  5.   

    设mysql_为已经初始化好的MYSQL* 句柄。
    MYSQL_RES*          result_ = NULL;
        MYSQL_ROW           row_;
    char str[] = "call sp1('2010-10-01')";
        mysql_real_query(mysql_, str, strlen(str));
        result_ = mysql_store_result(mysql_);
        while (row_ = mysql_fetch_row(result_))
        {
            // get the field value
            if (row_[0])
            {
                std::cout<<"count = "<<row_[0]<<std::endl;
                // convert it into int
                cnt = atoi(row_[0]);
                std::cout<<"cnt value = "<<row_[0]<<std::endl;
            }
        }    mysql_free_result(result_);