在 A 存储过程里调用 B 存储过程,B 存储过程返回一个 int 型数据。现在要在 A 过程里判断这个返回值。要求写出 IF 语句:如果返回值等于0,则退出A过程。

解决方案 »

  1.   

    你做到哪一步了?B 存储过程代码是什么,怎样返回int 型数据,详细说明
      

  2.   

    用C++代码来表示我的想法吧int B()
    {
       .....
       return xx;
    }void A()
    {
        if( B() == 0 )
           return;
    }
      

  3.   

    不是给B赋值,你理解错了,B是返回值的。我要判断他的返回结果,返回的是 int 型
      

  4.   

    B中是否有返回值的变量(OUT),A中怎么调用B的
    mysql help:
    CREATE PROCEDURE simpleproc (OUT param1 INT)
        -> BEGIN
        ->   SELECT COUNT(*) INTO param1 FROM t;
        -> END;
        -> //
    Query OK, 0 rows affected (0.00 sec)mysql> delimiter ;mysql> CALL simpleproc(@a);
    Query OK, 0 rows affected (0.00 sec)mysql> SELECT @a;
    +------+
    | @a   |
    +------+
    | 3    |
    +------+
    1 row in set (0.00 sec)
      

  5.   

    if @a=0 then
    ....
    end if
      

  6.   

    THEN 后面的“退出”呢?我要退出啊!!
      

  7.   

    CREATE PROCEDURE `proname`(uid int,rid int,out errorno int,...)
    top:BEGIN
     ....
    if @a=0 then
    leave top;
    end if
    END;
      

  8.   

    仔细看看代码
    top:BEGINmysql help:
    ITERATE labelITERATE can appear only within LOOP, REPEAT, and WHILE statements. ITERATE means “do the loop again.” Example: CREATE PROCEDURE doiterate(p1 INT)
    BEGIN
      label1: LOOP
        SET p1 = p1 + 1;
        IF p1 < 10 THEN ITERATE label1; END IF;
        LEAVE label1;
      END LOOP label1;
      SET @x = p1;
    END