Ошибка рефакторинга и проверки декларации переменных

Обсуждение возникших проблем, предложений и ошибок dbForge для MySQL
Закрыто
NikNikNik
Сообщения: 20
Зарегистрирован: Пн 07 июл 2014 10:31

Ошибка рефакторинга и проверки декларации переменных

Сообщение NikNikNik » Пн 04 авг 2014 10:48

Добрый день!

Если в редакторе скрипта (проц. или функцции) выделить переменную, то она подсветится во ВСЕХ встречающихся местах - это работает и правильно, имхо, работает.
Но вот если компилировать скрипт, то перед компиляцией он проверит наличие этой переменной НЕ во всех местах.
Например:

Код: Выделить всё

SET _var = ...; -- тут предкомпилятор ее "видит"
SET ... = CONCAT('...', CAST(_var AS CHAR), '...'); -- тут предкомпилятор ее НЕ видит и НЕ проверяет на объявленность
IF function_1(_var, ....., _var /2) THEN... -- равно как и здесь не видит или в UDF
SET ... = IF(TRUE, CAST(_var AS CHAR), '');
Такая же засада с рефакторингом. Попробуйте в Проводнике поменять имя функции или процедуры и согласитесь на рефакторинг - он заменит ее название только в "простых" местах др. скриптов. Если же они используются внутри к.л. конструкции, то только руками менять.

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

С уважением.

Закрыто