• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Ошибка «No active cache»

Статус
В этой теме нельзя размещать новые ответы.

Mettew

Начинающий
Пользователь
Регистрация
10 Май 2018
Сообщения
23
Лучшие ответы
0
Репутация
1
Дорогие друзья, сегодня возникла небольшая проблема с функцией cache_get_row_count. Сервер не авторизует человека с зарегистрированным ником, т.е. кидает ему форму регистрации и в БД появляются записи с одинаковыми никами. Подключил mysql_log. Вот ошибка:
Код:
[plugins/mysql] cache_get_row_count: no active cache (E:\Pawn\New RP\gamemodes\newrp.pwn:409 -> E:\Pawn\New RP\gamemodes\newrp.pwn:84 -> E:\Pawn\compiler\include\sscanf2.inc:241)

Функция, влючающая в себя 409-ую строку:
Код:
stock GetAccountID(playerid)
{
        new query[128], rows, pName[MAX_PLAYER_NAME];
        mysql_escape_string(player_info[playerid][NAME], pName);
        format(query, sizeof(query), "SELECT `id` FROM `accounts` WHERE `name` = '%s'", pName);
        mysql_tquery(dbHandle, query);
        cache_get_row_count(rows);
        if(rows)
        {
                cache_get_value_name_int(0, "id", player_info[playerid][ID]);
                return player_info[playerid][ID];
        }
        return 0;
}
Функция, включающая в себя 84-ую строку:
Код:
public OnPlayerConnect(playerid)
{
        mysql_log(ALL);
        RemovePlayerVariables(playerid);
        GetPlayerName(playerid, player_info[playerid][NAME], MAX_PLAYER_NAME);
        GetAccountID(playerid);
        if(player_info[playerid][ID] != 0) // Аккаунт зарегистрирован
        {
                new dialog[128 + MAX_PLAYER_NAME];
                format(dialog, sizeof(dialog), "Добро пожаловать на %S!\nЭтот аккаунт зарегистрирован.\n\nЛогин: %S.\nВведите пароль:", SERVER_NAME, player_info[playerid][NAME]);
                SPD(playerid, DIALOG_LOGIN, DSP, "{FF4F00}Авторизация", dialog, "Войти", "Отмена");
        }
        else
        {
                new dialog[300 + MAX_PLAYER_NAME];
                format(dialog, sizeof(dialog), "{FFFFFF}Добро пожаловать на %s!\nАккаунт с таким логином не зарегистрирован.\n\nЛогин: %s.\nВведите пароль и нажмите «Далее».\n\n{AAAAAA}Примечания:\n\t - Пароль чувствителен к регистру.\n\t - Длина пароля от 6 до 64 символов.\n\t - В пароле можно использовать латинские и кириллические символы.\n", player_info[playerid][NAME]);
                SPD(playerid, DIALOG_REGISTER, DSI, "{FF4F00}Регистрация", dialog, "Далее", "Отмена");
        }
        return 1;
}

Не могу понять в чём проблема. Долго искал в интернете - результат нулевой.

P.S. Ещё и инклуд ему чем-то не нравится...
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу