Версия: 1.9.4
Ревизия: 2682 от 2011-10-17
Вычисление в таблице не срабатывало на поле цена, пока вычисление в самом этом поле цена не было удалено, ПРИЧЁМ вычисление в самом поле цена было закомментировано через /**/ и видимо всегда выдавало 0.
Похоже на глюк программы!
Или это фича?
1
Возможно ошибка в КБ
Автор kok, 17 нояб. 2011 11:01
Сообщений в теме: 6
#1
Отправлено 17 Ноябрь 2011 - 11:01
*Свободный программер.
#2
Отправлено 17 Ноябрь 2011 - 12:26
Конкретно - где, когда, в какой таблице, в каком поле? Конфигурация стандартная/персональная? Вносились ли свои изменения?
#3
Отправлено 17 Ноябрь 2011 - 13:24
Разработчик (17.11.2011, 12:26) писал:
Конкретно - где, когда, в какой таблице, в каком поле? Конфигурация стандартная/персональная? Вносились ли свои изменения?
Тут видимо вот в чём дело: если в вычислении поля написать /**/ , то возвращаться в него будет значение false и это скорее всего в любой таблице такое (любого пользовательского поля).
Только что проверил, так и есть.
Завёл поле тест - текстовое, заполнил данными, всё ок. В его вычислении написал /* return 999; */, в итоге поле теперь всегда выводит пустое значение и ничего не сохраняет в него.
*Свободный программер.
#4
Отправлено 17 Ноябрь 2011 - 13:42
Ну вообще-то это очевидно, что если вы ничего явно не возвращаете из вычисления поля, то из него будет возвращаться false, что при записи в БД эквивалетно пустой строке. Т.к. сам текст вычисления есть (оно не пустое), то программа пытается вернуть из него результат, в данном случае - пустой. Если же вычисление удалить, то программа не будет ничего вычислять. Глюка как такового здесь нет, хотя и "фичей" это назвать нельзя, скорее недоработка. Я так понимаю, Вы предлагаете проверять результат на falsе, и в случае его наличия не перезаписывать значение поля?
#5
Отправлено 18 Ноябрь 2011 - 12:00
Т.к. результатом вычисления поля тоже м.б. false , мало ли ... то тут возможно необходимо проверять на NULL и если NULL , то в случае его наличия не перезаписывать значение поля.
*Свободный программер.
#6
Отправлено 18 Ноябрь 2011 - 13:26
В php нет значения NULL, это значение поля в БД.
А вот это уже может быть фичей, т.е. можно будет специально возвращать из вычисления такой результат, для предотвращения записи в БД. Записывать само значение false в БД смысла нет, т.к. таких значений там не бывает (как я уже писал он преобразуется в пустую строку или 0).
kok (18.11.2011, 13:00) писал:
Т.к. результатом вычисления поля тоже м.б. false , мало ли ...
#7
Отправлено 18 Ноябрь 2011 - 13:37
Еще бы задокументировать эту фичу (желательно с примером).
*Свободный программер.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных