Показать сообщение отдельно
  #7  
Старый 19.06.2018, 11:58
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Продолжается мое блуждание в трех соснах
Код:
DELIMITER //
DROP procedure IF EXISTS UserExist //

CREATE procedure UserExist (IN UserName VARCHAR(50), out RetMsg int)

  BEGIN

    SELECT id INTO RetMsg FROM Tab WHERE user = UserName;

  END;
//
DELIMITER ;

DELIMITER //
DROP procedure IF EXISTS SomeAuth //
CREATE PROCEDURE SomeAuth (UserName VarCHAR(50))
  BEGIN
    DECLARE pid int DEFAULT 0;
    DECLARE pMSG int DEFAULT 0;
    DECLARE pFile Mediumblob;
    DECLARE IsUser VARCHAR(20);
    set IsUser ='DefVal';
    call UserExist(UserName, @pMSG);

    if pMSG = 0 then
      set pid = 0;
        else
      set pid = 1;
    end iF;
  select @pid, @pMSG ;
  END //

DELIMITER ;
call SomeAuth('eefe490baa7c36fe1d073cc43fdcabf8');
Результат
Цитата:
@pid @pMSG
<null> 20
и сразу куча вопросов
Почему Pid null, если Default 0?
Почему не сработал If? С примерами из инета я отличий не вижу
Код:
mysql> DELIMITER // ;
mysql> CREATE PROCEDURE coursedetails_IFELSE(IN S_Subject Varchar(20), OUT S_Course varchar(50))
   -> BEGIN
   -> DECLARE Sub Varchar(20);
   -> SELECT Subject INTO SUB
   -> FROM Student_info WHERE S_Subject = Subject;
   -> IF Sub = 'Computers' THEN
   -> SET S_Course = 'B.Tech(CSE)';
   -> ELSE
   -> SET S_Course = 'Subject Not in the table ';
   -> END IF;
   -> END //
Query OK, 0 rows affected (0.00 sec
Ответить с цитированием