Ru-MaNGOS

Вернуться   Ru-MaNGOS > Документация > Языки программирования

Важная информация

Языки программирования Изучаем С++, Sql, php, Lua, Python

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.09.2011, 01:24   #1
Vinolentus
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
Vinolentus На верном пути
По умолчанию MySQL, процедуры и warning 1329

Исходная таблица.
Код:
CREATE TABLE `character_zones`
(
    `guid`  INT(11)     UNSIGNED NOT NULL DEFAULT '0',
    `idx`   TINYINT(3)  UNSIGNED NOT NULL DEFAULT '0',
    `val`   INT(11)     UNSIGNED NOT NULL DEFAULT '0',

    PRIMARY KEY (`guid`, `idx`)
) ENGINE = InnoDB;
Процедура.

Код:
DELIMITER $$
CREATE PROCEDURE `ConvertZones`() DETERMINISTIC
BEGIN
    DECLARE char_guid   INT(11);
    DECLARE in_str      TEXT;
    DECLARE out_idx     INT;
    DECLARE out_val     INT;
    DECLARE next_row    INT;
    DECLARE res CURSOR FOR SELECT `guid`, `exploredZones` FROM `characters`;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET next_row = 0;

    SET next_row = 1;
    OPEN res;
    WHILE next_row != 0 DO
        FETCH res INTO char_guid, in_str;
        IF next_row != 0 THEN
            SET out_idx = 0;
            WHILE in_str != '' DO
                SET out_val = CAST(SUBSTRING_INDEX(in_str, ' ', 1) AS UNSIGNED INTEGER);
                SET in_str = SUBSTRING(in_str, 1 + 1 + CHAR_LENGTH(out_val));
                IF (out_val != 0) THEN
                    INSERT INTO `character_zones` (`guid`, `idx`, `val`)
                    VALUES (char_guid, out_idx, out_val);
                END IF;
                SET out_idx = out_idx + 1;
            END WHILE;
        END IF;
    END WHILE;
    CLOSE res;
END$$
DELIMITER ;
Вызываю
Код:
CALL ConvertZones();
, вроде отрабатывает корректно, таблицу заполняет, но выдает
Код:
0 row(s) affected, 1 warning(s):
1329 No data - zero rows fetched, selected, or processed
В чем подвох, что я делаю не так?
Vinolentus вне форума   Ответить с цитированием
Старый 19.09.2011, 07:23   #2
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

возможно
Код:
SELECT count(*) from characters WHERE exploredZones IS NULL
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[11061] Bring 'autocommit' mode for MySQL back. This MySQL feature operates in so frustrating way so newsbot CMaNGOS Commits 0 21.01.2011 23:52
[10911] Fix GCC warning newsbot CMaNGOS Commits 0 23.12.2010 21:10
[10798] Some more warning fixes related to BattleGroundTeamIndex/BattleGroundAVTeamIndex. newsbot CMaNGOS Commits 0 01.12.2010 01:42
[10780] Fixed warning in ReputationMgr::SetReputation. newsbot CMaNGOS Commits 0 23.11.2010 23:21


Текущее время: 03:43. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot