хранимая процедура mysql: параметр

Вот, пожалуйста. на стороне HTML вы просто передаете событие нужной кнопке, а затем в виде строки span / div, где должны отображаться значки загрузки.

HTML:

  <button id="btn" onclick="load(event, 'loadDiv')">Load</button>
  <div>
    <span id="loadDiv"></span>    
  </div>

Ниже мы получаем btn id из события, поэтому вам не нужно вручную передавать его каждый раз. Затем мы определяем функцию для иконок innerhtml. Наконец, мы запускаем функцию showIcon каждые 4 секунды, а затем очищаем интервал через 5 секунд.

JS:

function load(e, location) {
  var btn = document.getElementById(e.srcElement.id)
  var loadDiv = document.getElementById(location)

  function showLoad() {
    if (loadDiv.innerHTML.length < 3) {
      return loadDiv.innerHTML += '●'
    }
    loadDiv.innerHTML = ''
  }

  (function() {
    var loadIcons = setInterval(function() {
      showLoad()
    }, 400)

    var clear = setTimeout(function() {
      clearInterval(loadIcons)
    }, 5000)
  })()
}

Надеюсь, это поможет!

28
задан Eric Leschinski 6 December 2013 в 20:09
поделиться

4 ответа

Невозможно реплицировать. У меня это сработало:

mysql> CALL my_sqrt(4, @out_value);
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @out_value;
+------------+
| @out_value |
+------------+
| 2          | 
+------------+
1 row in set (0.00 sec)

Возможно, вам следует вставить все сообщение об ошибке, а не резюмировать его.

38
ответ дан 28 November 2019 в 03:17
поделиться

Вы должны использовать правильную подпись для входного параметра * IN отсутствует в приведенном ниже коде.

CREATE PROCEDURE my_sqrt(IN input_number INT, OUT out_number FLOAT)
6
ответ дан 28 November 2019 в 03:17
поделиться

Я знаю, что это старая ветка, но если кто-то ищет ответ о том, почему его процедуры не работают в рабочей среде, и думает, что единственный результат - это «Запрос отменен» или что-то подобное без подсказок:

вывод с ошибками или проблемами скрыт. Я не знаю почему, я понимаю, это раздражает, но оно есть. просто наведите курсор на строку над сообщением, она превратится в двойную стрелку (вверх и вниз), затем вы можете нажать и перетащить эту строку вверх, после чего вы увидите консоль с пропущенным сообщением!

2
ответ дан SomeOne_1 28 November 2019 в 03:17
поделиться

Я просто попытался вызвать функцию в терминале, а не в браузере запросов MySQL и это работает. Итак, похоже, что я делаю что-то не так в этой программе ...

Я не знаю что, так как до этого я успешно вызывал некоторые процедуры (но там, где нет выходных параметров) ...

Для этой Я ввел

CALL my_sqrt(4,@out_value);
SELECT @out_value;

, и это приводит к ошибке:

У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версия вашего сервера MySQL для правильный синтаксис для использования рядом с 'SELECT @out_value 'в строке 2

Как ни странно, если я напишу просто:

CALL my_sqrt(4,@out_value); 

Результат будет: «Запрос отменен»

Думаю, сейчас я буду использовать только терминал ...

2
ответ дан 28 November 2019 в 03:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: