在MySQL存储过程中,可不可以同时有返回参数和返回结果集 我试了很多次用C++ 或 JAVA 获取 都是只能返回一种 
  比如存储过程:
DELIMITER $$
DROP PROCEDURE IF EXISTS  SP_queryCount $$
CREATE  SP_queryCount (IN iCounts INT,OUT iNum INT)
BEGIN
SET @tmpCounts = iCounts ;
        SET @tmpNum    = 0       ;
  
SET @tureccmd  = CONCAT('SELECT p_actorid FROM actor_a LIMIT ? '); PREPARE stmt FROM @tureccmd ;
EXECUTE stmt USING @tmpCounts  ;                         /*运行获得结果集*/
DEALLOCATE PREPARE stmt ;
        
        SET @tureccmd  = CONCAT('SELECT COUNT(p_actorid) INTO @tmpNum FROM actor_a WHERE p_actorid = ? '); PREPARE stmt FROM @tureccmd ;
EXECUTE stmt USING @tmpCounts  ;                         
DEALLOCATE PREPARE stmt ;        SET  iNum  =   @tmpNum  ;                                 /*运行参数获得返回数据iNum值*/

END$$
DELIMITER ;如何 能获得iNum 的值 也可以 得结果集的值呢   

解决方案 »

  1.   

    能获得iNum :用CALL(1,@WW)
    也可以将值插入到临时表中保存,取值即可
      

  2.   

    没有办法在你的宿主程序中直接传入这个参数并取得执行后的值。store procedure 中的 out 参数仅是对mysql而言的。
    但你可以在mysql_real_query() 的时候调这个存储过程,在你的这个SP_queryCount返回了多个结果集,你可以mysql_next_result()
    依次读取。
      

  3.   

    能获得iNum :用CALL(1,@WW)
    也可以将值插入到临时表中保存,取值即可
    对mysql而言的可以
    C++不可以获取