MySQL 返回参数和返回结果集

amwwgjj 2009-07-15 09:20:27
在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 的值 也可以 得结果集的值呢

...全文
620 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
coulder 2010-05-10
  • 打赏
  • 举报
回复
怎么没有答案啊?
amwwgjj 2009-07-17
  • 打赏
  • 举报
回复
能获得iNum :用CALL(1,@WW)
也可以将值插入到临时表中保存,取值即可
对mysql而言的可以
C++不可以获取


ACMAIN_CHM 2009-07-15
  • 打赏
  • 举报
回复

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

WWWWA 2009-07-15
  • 打赏
  • 举报
回复
能获得iNum :用CALL(1,@WW)
也可以将值插入到临时表中保存,取值即可

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧