|
|
|
Эмулятор компилятора MySQL.
|
|||
|---|---|---|---|
|
#18+
Товарищи! Хорошо бы иметь средство проверки хранимых процедур такого типа, чтобы можно было ловить использование необъявленных переменных хотя бы. Столько глупых ошибок бы сразу ушло. Я прямо вот уверен, что кто-то уже что-то такое написал, а то невозможно гарантировать вообще никакую работоспособность кода. Версия 5.5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2015, 14:31:12 |
|
||
|
Эмулятор компилятора MySQL.
|
|||
|---|---|---|---|
|
#18+
Basil_Tsvetkovиспользование необъявленных переменных хотя бы. Не используйте User-Defined Variables, и всё. Строго DECLARE. Ошибки вылезут сами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2015, 14:37:48 |
|
||
|
Эмулятор компилятора MySQL.
|
|||
|---|---|---|---|
|
#18+
используй dbForge foe Mysql и будет тебе счастье с ошибками просто не сохранишь хранимку, и по шага отладить сможешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2015, 14:50:25 |
|
||
|
Эмулятор компилятора MySQL.
|
|||
|---|---|---|---|
|
#18+
Akina, Перечитайте начало, я пишу именно про DECLARE, точнее, про случаи, когда про DECLARE забыли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2015, 14:57:25 |
|
||
|
Эмулятор компилятора MySQL.
|
|||
|---|---|---|---|
|
#18+
Basil_TsvetkovПеречитайте начало, я пишу именно про DECLARE Перечитал. Учитесь формулировать - то, что там написано, намекает именно на пользовательские переменные, только их можно использовать необъявленными по причине разрешённого неявного создания. А при забытой декларации никакого использования не будет, будет ошибка. Basil_Tsvetkovслучаи, когда про DECLARE забыли Вообще-то первое действие после создания процедуры - это проверка оной выполнением с тестовыми данными. Не увидеть последствий забытого DECLARE при этом невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2015, 16:20:48 |
|
||
|
Эмулятор компилятора MySQL.
|
|||
|---|---|---|---|
|
#18+
AkinaBasil_TsvetkovПеречитайте начало, я пишу именно про DECLARE Перечитал. Учитесь формулировать - то, что там написано, намекает именно на пользовательские переменные, только их можно использовать необъявленными по причине разрешённого неявного создания. А при забытой декларации никакого использования не будет, будет ошибка. Basil_Tsvetkovслучаи, когда про DECLARE забыли Вообще-то первое действие после создания процедуры - это проверка оной выполнением с тестовыми данными. Не увидеть последствий забытого DECLARE при этом невозможно. Вы идеалист насчет тестирования. Будете тестировать все обработчики ошибок и все ветвления в процедуре, буквально каждую строку? И расскажите заодно как протестировать все до единой строки каждой процедуры из уже существующих. Решительно не понимаю как можно жить без нормального компилятора? Каменный век вообще! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2015, 18:03:40 |
|
||
|
Эмулятор компилятора MySQL.
|
|||
|---|---|---|---|
|
#18+
Basil_TsvetkovБудете тестировать все обработчики ошибок и все ветвления в процедуре, буквально каждую строку?А что, выдавать на-гора код, который даёт верные результаты только по большим праздникам - лучше? Обязательно буду, и не только на "равномерные" данные, но и на все возможные кривые и граничные наборы. Basil_Tsvetkovкак протестировать все до единой строки каждой процедуры из уже существующих. Элементарно. Промежуточные значения заносятся в отладочную таблицу и анализируются на предмет отсутствия ошибок, в простейшем случае - сравниваются с эталонными. Проверенный и отлаженный код затем чистится от отладочных операторов - в ходе работы установкой сигнальной переменной, а в готовом коде комментированием или удалением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2015, 18:10:43 |
|
||
|
Эмулятор компилятора MySQL.
|
|||
|---|---|---|---|
|
#18+
AkinaBasil_TsvetkovБудете тестировать все обработчики ошибок и все ветвления в процедуре, буквально каждую строку?А что, выдавать на-гора код, который даёт верные результаты только по большим праздникам - лучше? Обязательно буду, и не только на "равномерные" данные, но и на все возможные кривые и граничные наборы. Basil_Tsvetkovкак протестировать все до единой строки каждой процедуры из уже существующих. Элементарно. Промежуточные значения заносятся в отладочную таблицу и анализируются на предмет отсутствия ошибок, в простейшем случае - сравниваются с эталонными. Проверенный и отлаженный код затем чистится от отладочных операторов - в ходе работы установкой сигнальной переменной, а в готовом коде комментированием или удалением. Подозреваю, что в случае тривиальной доработки в одну строчку для старой процедуры вам будет жалко времени на это всё. И скорее всего ошибку, которая там уже была вы не найдете. И когда она вылезет вы поймете о чем вообще здесь шла речь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2015, 09:06:50 |
|
||
|
Эмулятор компилятора MySQL.
|
|||
|---|---|---|---|
|
#18+
Basil_Tsvetkov, я предложил вариант 18303006 , котоый воплощает все твои хотелки, я его уже не один год использую, нареканий нет, все твои проблемы решаются на стадии написания и сохранения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2015, 09:14:20 |
|
||
|
Эмулятор компилятора MySQL.
|
|||
|---|---|---|---|
|
#18+
Basil_TsvetkovПодозреваю, что Да пожалуйста, подозревайте. Для вразумления тех, у кого неожиданно рухнул жёсткий диск, существует поговорка "Одни люди делают бэкапы, а другие будут их делать". В данном случае ситуация по сути совершенно аналогичная, пусть и на радикально ином материале. Жалеете время на тестирование - потом будете жалеть время, потраченное на восстановление работоспособности системы и валидности информации. Причём второго скорее всего потратится больше. Но убеждать не стану - каждый ССЗБ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2015, 09:39:37 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39081278&tid=1832591]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 190ms |
| total: | 334ms |

| 0 / 0 |
