За последние 24 часа нас посетили 18069 программистов и 1655 роботов. Сейчас ищут 1309 программистов ...

Вы не знаете почему процедура вызванная в MySQL Query Browse

Тема в разделе "MySQL", создана пользователем vlad275, 14 окт 2009.

  1. vlad275

    vlad275 Активный пользователь

    С нами с:
    30 дек 2007
    Сообщения:
    14
    Симпатии:
    0
    Вы не знаете почему процедура вызванная в MySQL Query Browser возвращает NULL, NULL?
    В PHPMyAdmin возващает 0 и "+"d
    В таблице нет ни одного NULL. Там одна строка данных. Ниже приведены 2 скриншота. В колонках 0 и "+"
    [​IMG]

    SP:
    Код (PHP):
    1. DELIMITER $$
    2.  
    3. DROP PROCEDURE IF EXISTS `p4` $$
    4. CREATE DEFINER=`root`@`localhost` PROCEDURE `p4`()
    5.     SQL SECURITY INVOKER
    6.     COMMENT 'Example'
    7. BEGIN
    8.  DECLARE intID INT(2);
    9.  DECLARE varcharStatus VARCHAR(255);
    10.  DECLARE cur1 CURSOR FOR SELECT intID,varcharStatus FROM tCandidates;
    11.  
    12.  OPEN cur1;
    13.  
    14.  FETCH  FROM cur1 INTO intID,varcharStatus;
    15.  
    16.   CREATE TABLE tTemp6 (intID  INT(2), varcharStatus VARCHAR(255));
    17.   INSERT INTO tTemp6 VALUES (intID, varcharStatus);
    18.  
    19.  SELECT intID, varcharStatus FROM tTemp6;
    20.  
    21.  CLOSE cur1;
    22. END $$
    23.  
    24. DELIMITER ;
    25.  
     
  2. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Ммм. Транзакции?
     
  3. vlad275

    vlad275 Активный пользователь

    С нами с:
    30 дек 2007
    Сообщения:
    14
    Симпатии:
    0
    Проблема была в переменных которые имели такие названия как и столбцы

    1)Локальные переменные имеют приоритет над параметрами процедуры и именами столбцов
    2)Локальные переменные во внутренних блоках имеют приоритет над определенными во внешних
    3)Параметры процедуры имеют приоритет над именами столбцов.