|
![]() |
#1 |
Участник
|
Хм.. Вроде как и есть что сказать по теме, но, вроде бы и так уже все сказано. Только систематизировано несколько по другому, из-за чего и "едет крыша". Как мне кажется, критически важным является ответ на первую "хотелку".
Цитата:
Дальнейшая реализация будет существенным образом зависеть от выбранного способа хранения значения NULL в базе данных. Ну, с первыми 3 вариантами дальнейшая работа понятна. Обычный набор переменных. Некоторые сложности может доставить перекодировка из maxdate() в пустое значение для отображения, но не думаю, что эта такая уж большая проблема. Проблемным является последний вариант, когда дополнительный признак является служебным полем, недоступным для прямого просмотра/изменения пользователем. Вот здесь на первое место выступает вторая ключевая "хотелка" Каким образом будет построен интерфейс с пользователем, чтобы пользователь мог понять, где значение будет интерпретировано как null, а где - как указанное значение? Пусть даже пользователь и "не трогал" этого значения. Или "потрогал", но вернул назад ![]() Вообще-то, мне приходит в голову только один вариант на подобный случай. Это когда речь идет о полях, которые пользователь изменить не может. Максимум посмотреть. Та же контрольная сумма. Но это значит, что речь идет о неких расчетных значениях, которые, очевидно, зависят от других реквизитов. Так может, можно эти самые "другие реквизиты" и использовать как признак значения NULL? Если же рассматривать вопрос БЕЗ учета этих двух основных "хотелок", например, как передача неких параметров при расчетах, то можно рассмотреть еще парочку вариантов.
X++: COMVariant comVariant; ; comVariant = new ComVariant(COMVariantInOut::In_out, ComVariantType::VT_BOOL); info(comVariant.toString()); info(strFmt('%1',comVariant.variantType())); comVariant.variantType(ComVariantType::VT_NULL); info(comVariant.toString()); info(strFmt('%1',comVariant.variantType()));
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#2 |
Участник
|
в общем, одно из значений трактовать как null...
Цитата:
но может быть сформулировать по-другому хотелки/требования? я бы с удовольствием послушал. Цитата:
в общем, временная таблица? надо подумать. надо попробовать. я этот вариант всегда рассматривал как чисто теоретический. |
|
![]() |
#3 |
Участник
|
угу. а еще есть? а можно всех посмотреть?
![]() Цитата:
Для примера возьмем MS SQL и Аксапту 2012, которые умеют отображать null значение, полученное из базы. там в поле отображается специальное значение null, а поле становится недоступным для редактирования. В аксапте 2012 со специальным значением напряжно. Но, думаю, что надо делать поле недоступным для пользователя. Но, опять же, хотелось бы выслушать варианты. Цитата:
Сообщение от Владимир Максимов
![]() Вообще-то, мне приходит в голову только один вариант на подобный случай. Это когда речь идет о полях, которые пользователь изменить не может. Максимум посмотреть. Та же контрольная сумма. Но это значит, что речь идет о неких расчетных значениях, которые, очевидно, зависят от других реквизитов. Так может, можно эти самые "другие реквизиты" и использовать как признак значения NULL?
"если для данного клиента включен контроль кредитного лимита, то спросить и хранить этот кредитный лимит" Цитата:
чтобы срабатывал prmIsDefault в вызывающем классе параметр не должен быть указан. если же у нас есть каскад методов с параметрами по-умолчанию, то параметр отсутствует только в самом внешнем. остальные передают тот параметр, который получили. и в каскаде prmIsDefaul сработает только один раз в каскаде. Цитата:
И как он передается между клиентом и сервером? |
|
![]() |
#4 |
Участник
|
Варианты хранения доп.признака в базе данных? Так вроде все перечислил. Ну, если не считать собственно поддержку NULL для поля. Или интересует вариант технической реализации? Так это у кого на что фантазии хватит. Например, для хранения признака создавать не по отдельному полю для каждого поля с возможным NULL, а одно общее поле, где хранить битовую маску...
Ну, и уже упоминались варианты, когда значение, эквивалентное NULL не надо прятать, а наоборот, выставить как одно из возможных значений. Например, заменить CheckBox на ComboBox с 3 вариантами выбора (All / Yes / No). Для текста (кода справочника) создать специальный элемент справочника с пустым кодом. Цитата:
Цитата:
В данном примере, где будет хранится сумма кредитного лимита? Ну, предположительно, либо в таблице клиента, либо в таблице договоров. В обоих случаях признак контроля кредитного лимита должен быть в той же таблице. Цитата:
![]() ------------------ Если просто "перечислять варианты", то вот еще парочка идей
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
Теги |
null, nullable, tuple, как правильно |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|