Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5      [все]
 FireDAC - присвоить Null полю  [new]
svnvlad
Member

Откуда:
Сообщений: 2149
Здравствуйте!
У меня был старый очень AnyDAC, там в компоненте собственном для работы с данными "на лету" были следующие строки:
for I := 0 to FData.Count - 1 do
        begin
          DataVal := PQValue(FData.Objects[I])^;
          case DataVal.TypeVal of
            0: Q.ParamByName(FData[I]).AsString := DataVal.VString;
            1: Q.ParamByName(FData[I]).LoadFromStream(DataVal.VStream, ftBlob);
            2: Q.ParamByName(FData[I]).AsDateTime := DataVal.VDateTime;
          end;
        end;

Чтобы присвоить полю Null, достаточно было параметру присвоить пустую строку ''.
Т.е.
0: Q.ParamByName(FData[I]).AsString := '';

Сейчас в новом FireDAC это приводит к тому, что полю присваивается ноль 0.
Как исправить данное поведение?
12 май 20, 14:28    [22131229]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 26574
.Clear?
12 май 20, 14:35    [22131239]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
svnvlad
Member

Откуда:
Сообщений: 2149
wadman,

Вот так сделал
      for I := 0 to FData.Count - 1 do
        begin
          DataVal := PQValue(FData.Objects[I])^;
          case DataVal.TypeVal of
            0: begin
                 Q.ParamByName(FData[I]).AsString := DataVal.VString;
                 if DataVal.VString = '' then
                   Q.ParamByName(FData[I]).Value := Null;
               end;
            1: Q.ParamByName(FData[I]).LoadFromStream(DataVal.VStream, ftBlob);
            2: Q.ParamByName(FData[I]).AsDateTime := DataVal.VDateTime;
          end;
        end;
12 май 20, 14:40    [22131242]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14081
Q.ParamByName(FData[I]).clear
12 май 20, 15:07    [22131263]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28798
svnvlad,

Если речь идет о TParam, то вот так.

Q.ParamByName(FData[I]).Clear;
Q.ParamByName(FData[I]).Bound:=True;

Собственно, уже сто лет как в справке Дельфей написано
The Clear method replaces the value of the parameter with NULL, but does not set Bound to false. However, if the Clear method is used to bind the parameter to a NULL value, Bound must be separately set to true.
Метод Clear заменяет значение параметра на NULL, но не устанавливает Bound в false. Тем не менее, если метод Clear используется для установки значения параметра в NULL, свойство Bound должно быть явно установлено в true.
12 май 20, 15:59    [22131314]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
alekcvp
Member

Откуда:
Сообщений: 2035
svnvlad
Сейчас в новом FireDAC это приводит к тому, что полю присваивается ноль 0.
Как исправить данное поведение?

TFDQuery -> FormatOptions -> StrsEmpty2Null -> True
12 май 20, 16:21    [22131348]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14081
да, действительно
14089754
13 май 20, 10:01    [22131813]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
alekcvp
Member

Откуда:
Сообщений: 2035
kdv
Метод Clear заменяет значение параметра на NULL, но не устанавливает Bound в false. Тем не менее, если метод Clear используется для установки значения параметра в NULL, свойство Bound должно быть явно установлено в true.

Я вот эту фразу не могу понять:

.Clear не устанавливает .Bound в False
поэтому .Bound необходимо установить в True

Как из первого следует второе, где, блин, логика?!..
13 май 20, 12:47    [22131964]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14081
а кому вообще нужно свойство Bound?
13 май 20, 12:51    [22131973]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9843
X11
а кому вообще нужно свойство Bound?

Например для вызова ХП с параметрами имеющими значения по умолчанию.
kdv
Q.ParamByName(FData[I]).Clear;
Q.ParamByName(FData[I]).Bound:=True;

В полном виде надо:
LParam.DataType := ftXxxx;
LParam.Bound := True;
LParam.Clear;
13 май 20, 12:59    [22131982]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14081
Почему бы разработчикам не сделать готовый метод, чтобы не вызывать три строки, а вызвать одну?
13 май 20, 13:05    [22131989]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 49980

IsNull := true;

Posted via ActualForum NNTP Server 1.5

13 май 20, 13:06    [22131992]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 26574
X11
Почему бы разработчикам не сделать готовый метод, чтобы не вызывать три строки, а вызвать одну?

Видимо давно сделали, т.к. я впервые слышу про такую конструкцию.

Понять-бы еще где это bound применяется/обязателен? Даже в примерах не замечал.
13 май 20, 14:48    [22132122]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
L_argo
Member

Откуда:
Сообщений: 1154
Можно же по умолчанию настроить, что пустая строка присвоит нулл.
13 май 20, 15:14    [22132154]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
L_argo> Можно же по умолчанию настроить, что пустая строка присвоит нулл.

Какой ужас... Вы с Оракла?

Posted via ActualForum NNTP Server 1.5

13 май 20, 15:28    [22132184]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9843
X11
Почему бы разработчикам не сделать готовый метод, чтобы не вызывать три строки, а вызвать одну?

Я понимаю, что очень бы хотелось TMyProgram.Create(<и тут миллион аргументов>) :)
13 май 20, 15:55    [22132203]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14081
wadman
X11
Почему бы разработчикам не сделать готовый метод, чтобы не вызывать три строки, а вызвать одну?

Видимо давно сделали, т.к. я впервые слышу про такую конструкцию.

Понять-бы еще где это bound применяется/обязателен? Даже в примерах не замечал.


я так понимаю, что bound касается только параметров, а полей не касается
13 май 20, 15:59    [22132205]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 26574
X11
wadman
пропущено...

Видимо давно сделали, т.к. я впервые слышу про такую конструкцию.

Понять-бы еще где это bound применяется/обязателен? Даже в примерах не замечал.


я так понимаю, что bound касается только параметров, а полей не касается

И я процедурами пользуюсь.
13 май 20, 16:01    [22132206]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14081
Dimitry Sibiryakov
IsNull := true;


ну да, я вот смотрю исходники FibPlus

procedure TFIBXSQLVAR.Clear;
begin
 IsNull:=True;
end;


...
...
procedure TFIBXSQLVAR.SetIsNull(aValue: Boolean);
begin
  if aValue then
  begin
   FWideTempValue:='';
   if FStreamValue<>nil then
   begin
     FStreamValue.Free;
     FStreamValue:=nil;
   end;
  end;
  SetValue(0,0,tspNull,aValue)
end;


Сообщение было отредактировано: 13 май 20, 16:08
13 май 20, 16:09    [22132213]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
alekcvp
Member

Откуда:
Сообщений: 2035
Гаджимурадов Рустам
L_argo> Можно же по умолчанию настроить, что пустая строка присвоит нулл.
Какой ужас... Вы с Оракла?
А какой смысл хранить в базе пустую строку?..
13 май 20, 17:09    [22132258]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
ъъъъъ
Member

Откуда:
Сообщений: 666
alekcvp
Гаджимурадов Рустам
L_argo> Можно же по умолчанию настроить, что пустая строка присвоит нулл.
Какой ужас... Вы с Оракла?
А какой смысл хранить в базе пустую строку?..

Никакого. Вопрос обсуждался в соотвествующем разделе скруля, единственное, что надыбали - вот такой сценарий:

Непустая строка - это описание события "Докладываю: рейхстаг взят".
Пустая строка - это описание события "Докладываю: ничего не произошло".
Null - доклада не было.
13 май 20, 17:49    [22132294]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28798
alekcvp
Как из первого следует второе, где, блин, логика?!..

вместо возмущений логикой следовало бы почитать справку или исходники.
1. присвоение значения параметру (не null) выставляет Bound в True. Это индикатор "значение присвоено".
2. если пункта 1 не было, Bound = False.
3. вызываем Clear - Bound остается False.
4. дальше ... ?
13 май 20, 20:38    [22132414]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28798
alekcvp,

черт, никогда у меня не получалось за один раз всё написать.
Так вот. Null - это не значение. Это отсуствие значения. И хранить его можно только как "индикатор отсутствия значения".
И с Bound + Clear вот как раз эта самая фигня. Clear убивает значение, теперь значения нет. А Bound является индикатором, что значение всё-таки есть. Но оно "пустое".
13 май 20, 20:43    [22132415]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
alekcvp
Member

Откуда:
Сообщений: 2035
kdv

1. присвоение значения параметру (не null) выставляет Bound в True. Это индикатор "значение присвоено".
2. если пункта 1 не было, Bound = False.
3. вызываем Clear - Bound остается False.

Ну так разве .Bound = False - это не есть Null, который и был нужен ТСу?..
14 май 20, 03:39    [22132546]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
L_argo
Member

Откуда:
Сообщений: 1154
alekcvp
Гаджимурадов Рустам
L_argo> Можно же по умолчанию настроить, что пустая строка присвоит нулл.
Какой ужас... Вы с Оракла?
А какой смысл хранить в базе пустую строку?..
Соображений может быть много. Начиная от стиля и предпочтений архитектора и кончая некот. нюансами в приложении, н-р упрощение работы с фильтрами. Также это может быть требование архитектуры сторонней системы.

И нулл и пустая строка имеют право на жизнь.
14 май 20, 09:55    [22132621]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
vavan
Member

Откуда: Казань
Сообщений: 3511
alekcvp
разве .Bound = False - это не есть Null
если параметр не связан то его например вообще может не юзать генератор конечного запроса. а если его таки обязательно задействовать (пусть и в виде null) то нужно включить привязку
14 май 20, 12:02    [22132743]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
alekcvp
А какой смысл хранить в базе пустую строку?..

У некоторых людей это религиозное. В духе известного анекдота про обрезание сосисок.
14 май 20, 12:11    [22132757]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
kdv
Так вот. Null - это не значение. Это отсуствие значения. И хранить его можно только как "индикатор отсутствия значения"

Это довольно странная точка зрения. Во всяком случае, мне было бы интересно, как Вы сумеете сформулировать принципиально различные определения "значения" и "индикатора отсутствия значения", учитывая, что и то, и другое в конечном итоге - набор битов.

kdv
И с Bound + Clear вот как раз эта самая фигня. Clear убивает значение, теперь значения нет. А Bound является индикатором, что значение всё-таки есть. Но оно "пустое".

Это всего лишь означает, что не нужно использовать Clear не по назначению, а нужно кроме Clear иметь метод SetNull (и по правде говоря, при его наличии трудно придумать, зачем нужен Clear).

Ну а после отказа от карго-культа и SetNull становится маловажным, поскольку в 99% случаев более уместен .AsString := ''.
14 май 20, 12:19    [22132767]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
alekcvp
Member

Откуда:
Сообщений: 2035
softwarer
Это довольно странная точка зрения. Во всяком случае, мне было бы интересно, как Вы сумеете сформулировать принципиально различные определения "значения" и "индикатора отсутствия значения", учитывая, что и то, и другое в конечном итоге - набор битов.

Не, ну тут-то понятно, у меня самого есть места где значения поля 0 и Null имеют разное значение. Но вот всегда хранить в базе пустые значения (0 или ''), независимо от контекста - ИМХО это странно.
14 май 20, 14:26    [22132899]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
alekcvp
Не, ну тут-то понятно, у меня самого есть места где значения поля 0 и Null имеют разное значение.

Конечно. Логика для нуля и для пустой строки существенно различна. Но в том, что Вы цитируете, я не об этом. Я примерно вот о чём: допустим, я написал СУБД, в ней таблица с одной колонкой, в ней две записи. Вот эти записи в битовом представлении:

0000000011111111
0000000100000000

Дополнительная информация: в одной из этих записей лежит значение null, в другой - буква "я". Мне очень интересно, каким образом коллега установит, где "значение", а где - "индикатор отсутствия значения", и, соответственно, ответит, какая из этих двух последовательностей битов какому значению соответствует.

Сообщение было отредактировано: 14 май 20, 14:41
14 май 20, 14:42    [22132914]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
В 2020м году не понимать разницу между двузначной и трёхзначной логикой...

Posted via ActualForum NNTP Server 1.5

14 май 20, 15:25    [22132968]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
s62
Member

Откуда: Жуковский
Сообщений: 1116
softwarer,

у Null значение же другое "не определено", "не известно". А пустая строка - это вполне определенное значение.
Отсюда правила действий с Null.
"Петя Иванов" + "" = "Петя Иванов"
"Петя Иванов" + Null (неизвестно) = Null (неизвестно).
14 май 20, 15:26    [22132969]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
ъъъъъ
Member

Откуда:
Сообщений: 666
s62
softwarer,

у Null значение же другое "не определено", "не известно". А пустая строка - это вполне определенное значение.
Отсюда правила действий с Null.
"Петя Иванов" + "" = "Петя Иванов"
"Петя Иванов" + Null (неизвестно) = Null (неизвестно).

Ну и нафига это?
14 май 20, 15:27    [22132970]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
s62
Member

Откуда: Жуковский
Сообщений: 1116
ъъъъъ

Ну и нафига это?
Ну это я не знаю, просто воспринимаю как данность мира SQL. Столкнулся в свой программе учета когда-то, когда наличие на складе - прибавлялось полученное к имеющемуся.

P.S. Может индицировать то обстоятельство, что величина неизвестна (а не равна, например, нулю).

Сообщение было отредактировано: 14 май 20, 15:30
14 май 20, 15:30    [22132977]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
s62
у Null значение же другое "не определено", "не известно"

У null значение null. Интерпретация этого значения зависит от бизнес-логики в конкретном случае.

s62
А пустая строка - это вполне определенное значение.

Докажите.
14 май 20, 15:31    [22132979]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
alekcvp
Member

Откуда:
Сообщений: 2035
s62
А пустая строка - это вполне определенное значение.

Если у вас вместо количества позиций на складе пустая строка - это что? Товар отсутствует? Не знают сколько имеется? Знают, но не заполнили, потому что пофиг?
14 май 20, 15:49    [22133006]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
ъъъъъ
Member

Откуда:
Сообщений: 666
alekcvp
s62
А пустая строка - это вполне определенное значение.

Если у вас вместо количества позиций на складе пустая строка - это что? Товар отсутствует? Не знают сколько имеется? Знают, но не заполнили, потому что пофиг?

Не, ну за уши что угодно притянуть можно.
Например: пустая строка - "проверили - товара нет", Null - "пока не проверили".
14 май 20, 15:52    [22133009]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
s62
Member

Откуда: Жуковский
Сообщений: 1116
alekcvp
s62
А пустая строка - это вполне определенное значение.

Если у вас вместо количества позиций на складе пустая строка - это что? Товар отсутствует? Не знают сколько имеется? Знают, но не заполнили, потому что пофиг?
По идее количество позиций должно быть не строкой, а целым (или, если не штучный товар, то может быть с фиксированной/плавающей запятой). Соответственно ноль значит ничего нет.

Сообщение было отредактировано: 14 май 20, 15:55
14 май 20, 15:56    [22133014]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
ъъъъъ
Member

Откуда:
Сообщений: 666
s62
alekcvp
пропущено...

Если у вас вместо количества позиций на складе пустая строка - это что? Товар отсутствует? Не знают сколько имеется? Знают, но не заполнили, потому что пофиг?
По идее количество позиций должно быть не строкой, а целым (или, если не штучный товар, то может быть с фиксированной/плавающей запятой).

Да щас.
Заливали "исходные данные" - что там только не было: 1 шт, 2 литра, 1/2 тонны, 0.5 т, 11 уп, 12 ящ, 1/2 маленьк.ящ...
14 май 20, 15:59    [22133018]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
s62
Member

Откуда: Жуковский
Сообщений: 1116
alekcvp
s62
А пустая строка - это вполне определенное значение.

Если у вас вместо количества позиций на складе пустая строка - это что? Товар отсутствует? Не знают сколько имеется? Знают, но не заполнили, потому что пофиг?
Я имел в виду, определенное значение с точки зрения программирования. Если есть строковая переменная, то она может принимать какие-то значения, пустая строка - одно из допустимых значений, операция конкатенации например выполняется, как и с другими значениями.
14 май 20, 16:00    [22133019]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
s62
Ну это я не знаю, просто воспринимаю как данность мира SQL.

Насколько я видел данности мира SQL, в нём есть следующие варианты:

1. Пустая строка и null неразличимы. Это удобно, соответствует логике реального мира и заметно облегчает жизнь.
2. Пустая строка и null различимы. Это неудобно, не соответствует логике реального мира и создаёт дополнительные проблемы.
2.1 Разработчик выносит на уровень внутреннего стандарта использование везде одного из этих двух значений. Например, вешает на все строковые поля constraint check (value <> ''). В результате приемлемым количеством геморроя он приводит ситуацию к первому пункту, исправляя кривизну БД.
2.2 Разработчик этого не делает, и через несколько лет все окружающие имеют большое сексуальное удовольствие сопровождать систему, в которой в половине мест "отсутствие значения" индицируется null-ом, в другой половине мест "отсутствие значения" индицируется пустой строкой и при написании кода каждые пять минут следует лазить в структуру таблиц смотреть как оно в конкретном поле, выбирать соответствущие операции и обвешивать всё многочисленными страховками.
14 май 20, 16:07    [22133026]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
s62
Я имел в виду, определенное значение с точки зрения программирования

Null - это ровно такое же "определённое значение с точки зрения программирования".

s62
Если есть строковая переменная, то она может принимать какие-то значения, пустая строка - одно из допустимых значений,

И null для неё тоже - одно из допустимых значений.

s62
операция конкатенации например выполняется, как и с другими значениями.

Конечно.

SQL> select 'Вася ' || null || 'Пупкин' test from dual;

TEST
---------------------
Вася Пупкин
14 май 20, 16:10    [22133028]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11759
softwarer
исправляя кривизну БД.
А если мы храним не строки, а числа? Должны ли мы различать NULL и 0? Тот же вопрос для BOOLEAN (NULL/FALSE) и GUID ({000000-.....000})?

Если ответ да, то почему тогда к строкам особое отношение?
14 май 20, 16:15    [22133035]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
alekcvp
Member

Откуда:
Сообщений: 2035
_Vasilisk_,

Вообще странный вопрос, как уже выше писали всё зависит от логики приложения.
У меня есть места, где null и '' разницы не имеют, и там я храню null'ы. А есть места где '' - это "отсутствует", а null - это "не используется", и там да, хранятся и пустые строки.
14 май 20, 16:23    [22133042]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
s62
Member

Откуда: Жуковский
Сообщений: 1116
softwarer,

да, NULL тоже допустимое значение, согласен, но со специфическими правилами оперирования с этим значением, которые как бы понятны из соображений здравого смысла, если учитывать, что NULL это "значение не задано" или "значение неизвестно".
Операция конкатенации, которую вы привели, в Firebird будет давать другой результат, NULL
https://firebirdsql.org/file/documentation/reference_manuals/user_manuals/Firebird-Null-Guide-Russian.pdf
В MS SQL, как пишут, по-умолчанию тоже (не работаю с ней, так что просто погуглил, как у них и это то, что было среди результатов) https://docs.microsoft.com/ru-ru/sql/t-sql/statements/set-concat-null-yields-null-transact-sql?view=sql-server-ver15
P.S. Нет, неправильно прочитал про MS SQL, задается параметром, не сказано, что это - значение параметра по-умолчанию.

Сообщение было отредактировано: 14 май 20, 16:24
14 май 20, 16:24    [22133043]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9843
Гемороя от Null много ... :)

Сообщение было отредактировано: 14 май 20, 16:28
14 май 20, 16:28    [22133047]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
alekcvp
Member

Откуда:
Сообщений: 2035
Dmitry Arefiev
Гемороя от Null много ... :)

А представьте компьютер на fuzzy logic, где каждый бит может принимать значения 0, 1 и null 😁
14 май 20, 16:34    [22133053]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
_Vasilisk_
А если мы храним не строки, а числа? Должны ли мы различать NULL и 0?

Мы ничего не должны, но чем больше реализация будет соответствовать потребностям реального мира, тем лучший результат будут выдавать те же программисты.

В случае чисел, по моему опыту, оптимальный подход - различать null и 0, но при этом доопределить арифметические операции следующим образом:

- деление любого числа на 0 даёт null
- сложение и вычитание числа с null-ом даёт результатом это число.

И да, этот подход проверен на практике, и результаты очень хороши.

_Vasilisk_
Тот же вопрос для BOOLEAN (NULL/FALSE)

Хороший вопрос. У меня нет на него однозначного ответа. У их различия есть свои плюсы, у их неразличимости - свои, и я не возьмусь уверенно сказать, какие весомее. Пожалуй, я бы сказал так: если ориентироваться на квалифицированных разработчиков, их лучше различать, если на неквалифицированных - лучше было бы не различать.

_Vasilisk_
и GUID ({000000-.....000})?

Я практически не работал с guid и могу чего-то не знать, но не вижу причин выносить его в особый тип. Думаю, будет правильно, если в отношении него будут действовать ровно те же правила, что и для соответствующего ему строкового значения.

_Vasilisk_
Если ответ да, то почему тогда к строкам особое отношение?

К строкам нет никакого особого отношения. Отношение везде одно - соответствие логике реального мира.

Если Вы хотите спросить, почему для нуля и пустой строки разные оптимумы, то возьмите два листа чистой бумаги формата А4. Напишите на первом из них цифру 0 и скажите, можете ли Вы отличить этот лист от второго. Теперь возьмите ещё два листа чистой бумаги формата А4, напишите на третьем пустую строку и скажите, можете ли Вы отличить его от четвёртого.

Сообщение было отредактировано: 14 май 20, 16:39
14 май 20, 16:40    [22133058]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
s62
но со специфическими правилами оперирования с этим значением, которые как бы понятны из соображений здравого смысла

Они понятны не из соображений "здравого смысла", а из соображений "стройности математической теории".

s62
Операция конкатенации, которую вы привели, в Firebird будет давать другой результат

И это одна из многих причин, по которым я не вижу смысла использовать Firebird.
14 май 20, 16:49    [22133065]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
softwarer> 1. Пустая строка и null неразличимы. ...
softwarer> соответствует логике реального мира

Для приличия в таких случаях надо говорить "по моему скромному мнению".

Posted via ActualForum NNTP Server 1.5

14 май 20, 16:49    [22133066]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 26574
softwarer
К строкам нет никакого особого отношения. Отношение везде одно - соответствие логике реального мира.

В реальном мире место бывает пустым, заполненным чем-то бесполезным и полезным.

П.С. Кажется тема с нуллами уже не раз обсуждалась на скуле и никто в итоге никого не переубеждал. Все расходились в том-же состоянии, в каком и вступали в философскую полемику.
14 май 20, 16:51    [22133068]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
bk0010
Member

Откуда:
Сообщений: 4935
alekcvp
А представьте компьютер на fuzzy logic, где каждый бит может принимать значения 0, 1 и null 😁
А что представлять: null - он из реляционной алгебры, без него с outer join совсем тухло было бы.
14 май 20, 16:53    [22133071]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
wadman> В реальном мире место бывает пустым, заполненным чем-то бесполезным и полезным.

Это ты зря, "пустое" тебе тут же свяжут "ну и пустая строка пустая",
а полезное/бесполезное субъективные оценки. Разумнее оперировать
термином "известно".

> никто в итоге никого не переубеждал. Все расходились в том-же состоянии

Переубедить в интернете кого-то (тем более уверенное в своей правоте)
почти невозможно. Правда, можно разойтись не в том же состоянии, а
изрядно покидавшись друг в друга чем-нибудь и испортив настроение. :)

Posted via ActualForum NNTP Server 1.5

14 май 20, 16:54    [22133072]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
Гаджимурадов Рустам
softwarer> 1. Пустая строка и null неразличимы. ...
softwarer> соответствует логике реального мира

Для приличия в таких случаях надо говорить "по моему скромному мнению".

По моему скромному мнению, солнце встаёт на востоке.
14 май 20, 16:58    [22133077]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 26574
softwarer
Гаджимурадов Рустам
softwarer> 1. Пустая строка и null неразличимы. ...
softwarer> соответствует логике реального мира

Для приличия в таких случаях надо говорить "по моему скромному мнению".

По моему скромному мнению, солнце встаёт на востоке.

По моему оно вовсе не встает.
14 май 20, 17:01    [22133081]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
wadman
В реальном мире место бывает пустым, заполненным чем-то бесполезным и полезным

Безусловно. Но СУБД пока что не поддерживают категорию полезности, хотя это было бы весьма интересной доработкой. Представьте себе: "На складе лежит 128 противогазов, но они бесполезны". Так что оставаясь в рамках СУБД, пока что имеет смысл говорить только о пустое/заполненное.

wadman
Кажется тема с нуллами уже не раз обсуждалась на скуле и никто в итоге никого не переубеждал.

Ну, переубеждать упёртого из принципа человека - занятие бесполезное. Но никто не мешает людям с живыми мозгами услышать аргументы, обдумать их, возможно, скорректировать свою точку зрения, возможно, лучше понять причины своей и т. п. Да и "упёртые из принципа", по опыту, потихоньку расшатываются, и через несколько лет, когда уже не боятся потерять корону, порой встают на позиции истины.
14 май 20, 17:04    [22133085]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
softwarer> По моему скромному мнению, солнце встаёт на востоке.

С этим можно и согласиться.

Атрибут "отчество" по твоему скромному мнению
может "иметь значения" "неизвестно" и "отсутствует"
или эти два "значения" абсолютно идентичны?

Posted via ActualForum NNTP Server 1.5

14 май 20, 17:05    [22133087]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
Гаджимурадов Рустам
Атрибут "отчество" по твоему скромному мнению может "иметь значения" "неизвестно" и "отсутствует" или эти два "значения" абсолютно идентичны?

Атрибут "отчество" по моему скромному мнению неудачен и лучше не использовать его в дизайне БД.
14 май 20, 17:10    [22133089]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 26574
softwarer
Представьте себе: "На складе лежит 128 противогазов, но они бесполезны"

Потому что нужны лопаты. Вполне нормальная и естественная для жизни ситуация.
А могло быть так, что ни лопат, ни противогазов.
softwarer
Ну, переубеждать упёртого из принципа человека - занятие бесполезное.

Этот аргумент работает в обе стороны.
14 май 20, 17:10    [22133090]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
wadman
Этот аргумент работает в обе стороны.

Это не аргумент, это факт. А вот упёртый ли человек - определяется как раз его реакцией на аргументы.
14 май 20, 17:12    [22133091]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
rgreat
Member

Откуда:
Сообщений: 5934
softwarer
Атрибут "отчество" по моему скромному мнению неудачен и лучше не использовать его в дизайне БД.
ФМС и МВД твои подходы не оценят.
14 май 20, 17:13    [22133093]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
softwarer> Атрибут "отчество" по моему скромному мнению неудачен



softwarer> лучше не использовать его в дизайне БД.

Какой БД? Мы говорили лишь о "логике реального мира".
В "логике реального мира" ты различаешь понятия
"отчество неизвестно" и "отчество отсутствует"?

Posted via ActualForum NNTP Server 1.5

14 май 20, 17:13    [22133094]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
rgreat
ФМС и МВД твои подходы не оценят.

Угу. И именно благодаря этому начинается геморрой каждый раз, когда приезжает какой-нибудь Вишванатан Ананд.
14 май 20, 17:16    [22133098]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
rgreat
Member

Откуда:
Сообщений: 5934
softwarer,

А чего с ним не так, если можно сделать отчество Null или ''?
14 май 20, 17:17    [22133099]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9843
softwarer
А вот упёртый ли человек - определяется как раз его реакцией на аргументы.

Один напирает, другой упирается. Со стороны каждого упертость другой стороны субъективна. Но работает симметрично. Типа - 3ий закон Ньютона.

Сообщение было отредактировано: 14 май 20, 17:17
14 май 20, 17:18    [22133101]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 26574
softwarer
wadman
Этот аргумент работает в обе стороны.

Это не аргумент, это факт. А вот упёртый ли человек - определяется как раз его реакцией на аргументы.

Аж ностальгия нахлынула... Да, обычные фокусы с подменой предмета обсуждения переходом на личности. :D
14 май 20, 17:24    [22133107]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
Гаджимурадов Рустам
В "логике реального мира" ты различаешь понятия "отчество неизвестно" и "отчество отсутствует"?

Рустам, ты меня плохо понимаешь. Ты пытаешься задать вопрос, на который, как тебе кажется, можно ответить "да" или "нет". Для меня ни один из этих ответов не является приемлемым, а правильный ответ гораздо сложнее. Если ты настаиваешь, чтобы я ответил на этот вопрос без его приведения в приемлемый вид, то наиболее корректным ответом будет значение null.
14 май 20, 17:27    [22133109]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
rgreat
А чего с ним не так, если можно сделать отчество Null или ''?

Отчество - это субатомарное значение. Хранить отчество как отдельный атрибут - это примерно то же самое, что хранить число как группу отдельных цифр. Ну то есть, конечно, никто не мешает сделать

create table Числа (
  первая_цифра number(1),
  вторая_цифра number(1),
  третья_цифра number(1)
);


но вопрос "что не так с атрибутом 'вторая цифра' если можно его сделать 0 или null" по мне несколько бессмысленен.
14 май 20, 17:33    [22133121]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
Dmitry Arefiev
Один напирает, другой упирается. Со стороны каждого упертость другой стороны субъективна

Со стороны объективного наблюдателя она определяется реакцией на аргументы. А каждая из сторон может либо разделять этот объективный взгляд, либо предпочитать какой-либо субъективный. Типовой субъективный взгляд в этом случае - вера в упёртость другой стороны.

wadman
Аж ностальгия нахлынула... Да, обычные фокусы с подменой предмета обсуждения переходом на личности. :D

Хм. Если бы не смайлик в конце, я бы предположил, что ты вычитал в сказанном что-то, чего там и близко не было. Со смайликом у меня вообще нет предположений, какое отношение эта фраза имеет к ранее сказанному. Соответственно, мне нечего ответить.
14 май 20, 17:38    [22133128]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
softwarer> Для меня ни один из этих ответов не является приемлемым
softwarer> ... наиболее корректным ответом будет значение null.

Ну т.е. не различаешь, понятно.

softwarer> Отчество - это субатомарное значение.

Я правильно понимаю, что по твоему мнению
(видимо, это было бы частью "сложного ответа")
фамилия - это тоже "субатомарное значение"?
Собсно, как и имя (которое Рустам, Александр) -
т.е. не "обращение", а именно "имя".

Posted via ActualForum NNTP Server 1.5

14 май 20, 17:40    [22133129]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
Гаджимурадов Рустам
softwarer> Для меня ни один из этих ответов не является приемлемым
softwarer> ... наиболее корректным ответом будет значение null.

Ну т.е. не различаешь, понятно.

2Vasilisk: иллюстрация к вопросу про boolean. Как видим, Рустам предпочитает их не различать.

Гаджимурадов Рустам
Я правильно понимаю, что по твоему мнению фамилия - это тоже "субатомарное значение"?

Да.

Гаджимурадов Рустам
(видимо, это было бы частью "сложного ответа")

Нет.

Гаджимурадов Рустам
Собсно, как и имя (которое Рустам, Александр)

Да.
14 май 20, 17:43    [22133131]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
rgreat
Member

Откуда:
Сообщений: 5934
softwarer
Отчество - это субатомарное значение. Хранить отчество как отдельный атрибут - это примерно то же самое, что хранить число как группу отдельных цифр.
Нифига не понял, но похоже это нечто из субъективной "математической красоты".

Ибо по сути ФИО - это таки набор из 3-х параметров, а не одна строка.

Если писать в одну строку даже порядок слов легко можно напутать.

"Иванов Сергей Михайлович"="Сергей Михайлович Иванов"

Сообщение было отредактировано: 14 май 20, 17:46
14 май 20, 17:44    [22133132]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
softwarer> фамилия - это тоже "субатомарное значение" ... Собсно, как и имя

Тебе не кажется, что это, мягко говоря, очень далеко от "логики реального мира"?

Posted via ActualForum NNTP Server 1.5

14 май 20, 17:49    [22133134]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
Гаджимурадов Рустам
Тебе не кажется, что это, мягко говоря, очень далеко от "логики реального мира"?

Смотря что считать реальным миром. Пока ограничен паспортным столом в регионе с доминирующе русским населением - можно считать, что далеко, и втискивать реальность в прокрустово ложе "отчества". По мере того, как знакомство с миром расширяется - понимаешь, что эта модель ну совсем не соответствует реальности.

rgreat
Ибо по сути ФИО - это таки набор из 3-х параметров, а не одна строка.

Не вопрос. Прямо здесь и сейчас разберите по трём параметрам строки

Амет-Хан Султан
Полад Бюль-Бюль Оглы
Шарль Ожье де Бац дель Кастельмор
Пабло Диего Хосе Франсиско ди Паула
Вишванатан Ананд


Сообщение было отредактировано: 14 май 20, 18:21
14 май 20, 18:17    [22133173]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
rgreat
Member

Откуда:
Сообщений: 5934
softwarer,

На это нормативные документы есть.

Ну и на крайняк можно спросить у имяносителя, что у него имя а что фамилия. А что вообще писать никуда не надо.
14 май 20, 19:02    [22133219]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
rgreat
На это нормативные документы есть

Ну так примените нормативные документы, не вопрос. Только это никак не меняет дела, просто вместо "имярек спроектировал кривую БД" получится "имярек с использованием нормативных документов спроектировал кривую БД".

rgreat
Ну и на крайняк можно спросить у имяносителя, что у него имя а что фамилия.

Ну для начала трое из названных уже умерли и вряд ли ответят. Не все из них вообще поняли бы Ваш вопрос. И вообще, с чего Вы решили, что там есть хотя бы одна фамилия?

rgreat
А что вообще писать никуда не надо.

А вот таких частей как раз нет.

Сообщение было отредактировано: 14 май 20, 19:11
14 май 20, 19:12    [22133237]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
rgreat
Member

Откуда:
Сообщений: 5934
softwarer
Ну так примените нормативные документы, не вопрос. Только это никак не меняет дела, просто вместо "имярек спроектировал кривую БД" получится "имярек с использованием нормативных документов спроектировал кривую БД".

Откуда взялся вывод о "кривую"?

softwarer
Ну для начала трое из названных уже умерли и вряд ли ответят.
К умершим "на крайняк" не применим.

softwarer
Не все из них вообще поняли бы Ваш вопрос. И вообще, с чего Вы решили, что там есть хотя бы одна фамилия?

Потому что там есть фамильные приставки "де" и "дель".

softwarer
А вот таких частей как раз нет.
Как минимум у Пикассо отчество - Хосе.
14 май 20, 19:38    [22133256]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
В общем, пока не задали следующую серию малогодных вопросов, рассказываю. Имя человека - это последовательность элементов, например Публий Корнелий Сципион Африканский Старший. Каждый из этих элементов имеет тип, которых довольно много. Например, "Корнелий" - это фамилия (с определённой точностью). Как я уже сказал, типов элементов довольно много и полно и корректно реализовать работу с ними - нетривиальная задача, не говоря уже о вопросе, кто будет вводить всю эту информацию. Там, где информации о типах нет, манипуляций с составляющими имени лучше избегать, потому что если вы напишете что-нибудь типа "Корнелий П. С." - вас, мягко говоря, не поймут. Там, где нет возможности спросить у носителя имени, тип элемента с определённой точностью можно определить по справочнику, но и в этом случае следует соблюдать изрядную осторожность - например, попробуйте угадать, где в "Аарон Александр" имя, а где - фамилия. В любом случае, как только распознана мало-мальски нетривиальная ситуация, например, необычная частица - самодеятельность надо прекращать. Если, конечно, не хотите быть идиотом.

Сообщение было отредактировано: 14 май 20, 19:43
14 май 20, 19:42    [22133259]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
rgreat
Потому что там есть фамильные приставки "де" и "дель"

Ну и какая же фамилия у д'Артаньяна - де Бац или дель Кастельмор?
14 май 20, 19:44    [22133260]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
rgreat
Member

Откуда:
Сообщений: 5934
softwarer
Ну и какая же фамилия у д'Артаньяна - де Бац или дель Кастельмор?
Почему "или"?

Это как Салтыков-Щедрин по нашему.

Хотя я могу быть не прав и тут "де Кастельмор" это титул.
Я тут не спец.

Сообщение было отредактировано: 14 май 20, 19:50
14 май 20, 19:46    [22133261]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
rgreat
Это как Салтыков-Щедрин по нашему.

Вы правда так думаете?

Вспоминается анекдот про Гей-Люссака и Бойля-Мариотта.
14 май 20, 19:48    [22133263]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
rgreat
Member

Откуда:
Сообщений: 5934
softwarer
Вы правда так думаете?
Я могу только предполагать.

Вспоминается анекдот про Гей-Люссака и Бойля-Мариотта.
В свое время за подобные речи в контексте имени дворянина вас бы запороли на конюшне или вызвали на дуэль, в зависимости от длины и состава уже вашего имени.

Сообщение было отредактировано: 14 май 20, 19:51
14 май 20, 19:51    [22133264]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9843
По сути тут надо не разбивать на составляющие, а вводить формы обращения:
* полное имя - ФИО или что там еще, как записано в пасспорте
* краткая форма - имя, одно если их несколько, как челу удобнее
* официальная форма - ИО в РУ, хз как еще где
* погоняло - как в полицейских БД
и тд

:)
14 май 20, 19:54    [22133265]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
rgreat
В свое время за подобные речи в контексте имени дворянина вас бы запороли на конюшне

Михаил Евграфович был довольно умным человеком, поэтому, думаю, он сначала посмеялся бы, а потом указал бы Вам на то, что "Салтыков-Щедрин", равно как "Ульянов-Ленин" - это вообще не фамилия.

Dmitry Arefiev
По сути тут надо не разбивать на составляющие, а вводить формы обращения:

Конечно. Для большинства реальных задач правильный подход - именно так.
14 май 20, 20:00    [22133270]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
softwarer> Смотря что считать реальным миром.

А что ты называл реальным миром, когда писал исходную фразу
про "логику реального мира"? Окружающую действительность
или что-то иное, пока не озвученное?

softwarer> Пока ограничен паспортным столом в регионе
softwarer> с доминирующе русским населением - можно считать, что далеко

Ну т.е. многочисленные примеры из семитских, греческих,
тюркских (упомянутый Полад) и широко распространённые
"средние имена" тоже не в счёт и неправильная реальность?

softwarer> По мере того, как знакомство с миром расширяется - понимаешь,
softwarer> что эта модель ну совсем не соответствует реальности.

Отчего же не соответсвует... Просто там, где отчество отсутсвует по
региональной специфике - для соотв. человека оставишь поле пустым.


Тем не менее, отложим формулу имени в сторонку и упростим задачу:
некий фонд помощи малоимущим, атрибут "адрес малоимущего" - ты
различаешь понятия "адрес неизвестен" и "без адреса" ?

Posted via ActualForum NNTP Server 1.5

14 май 20, 20:08    [22133273]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
Dmitry Arefiev> По сути тут надо не разбивать на составляющие, а вводить формы обращения

Это когда речь идёт о конкретной БД и таблицах.
А тут речь зашла аж об абстрактном различии между
строковыми атрибутами и атрибутами всех остальных
типов (числовые, даты и пр.), а отчество/midname
просто наиболее очевидный реальный пример.

Posted via ActualForum NNTP Server 1.5

14 май 20, 20:17    [22133276]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9843
Вам на слова разбить, обратиться к отдельно взятому челу, или идентифицировать чела ? :)
Не надо кислое с жестким путать ...
14 май 20, 20:19    [22133278]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
Нам объяснить, что Null <> 0 ровно настолько же, насколько Null <> ''
(по крайней мере до тех пор, пока для пустой строки не заведено
специальное значение а-ля 'это наша пустая строка').

Posted via ActualForum NNTP Server 1.5

14 май 20, 20:22    [22133280]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
Гаджимурадов Рустам
Отчего же не соответсвует... Просто там, где отчество отсутсвует по
региональной специфике - для соотв. человека оставишь поле пустым.

Оттого, что сама по себе фраза "оставишь поле пустым" уже означает структуру БД, не релевантную задаче.

Гаджимурадов Рустам
некий фонд помощи малоимущим, атрибут "адрес малоимущего" - ты
различаешь понятия "адрес неизвестен" и "без адреса" ?

Ты такие примеры выбираешь... адреса - это история ещё повеселее имён

Я всё пытаюсь сообразить, как бы ответить, чтобы было коротко и по делу. Попробую так. У физических лиц чаще всего говорят про адрес регистрации и адрес фактического проживания. Если говорить про адрес регистрации, то с точки зрения гипотетического фонда помощи я различаю понятия "у человека нет паспорта", "у человека есть паспорт и в нём нет адреса регистрации" и "у человека есть паспорт и в нём есть адрес регистрации". Если говорить про адрес проживания, то с точки зрения того же фонда я понимаю единственное понятие "человек сообщил N адресов", где N - неотрицательное целое число.

Я понимаю, к какой структуре данных ты натягиваешь, но найти задачу, для которой она бы хорошо подходила, чертовски сложно. Для иллюстрации твоего подхода я предлагаю тебе ответить на вопрос, очень похожий на твой: база жильцов многоквартирного дома, различаешь ли ты понятия "у жильца нет автомобиля" и "неизвестно, есть ли у жильца автомобиль"?
14 май 20, 21:18    [22133293]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9843
Если я не знаю чего-то, то этого не существует :)
14 май 20, 21:31    [22133297]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
Если я не знаю чего-то, что существует, то окружающие могут об этом рассказать и показать. Если они не могут рассказать и показать, а только знают, что оно существует - это чайник Рассела.
14 май 20, 21:35    [22133299]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
softwarer> Ты такие примеры выбираешь... адреса - это история ещё повеселее имён

Максимально простые, встречающиеся практически
повседневно практически каждому человеку, пусть
и в других ситуациях. И с адресами в приведённом
примере нет никаких сложностей и веселухи, это строка.
Простой журнал, всё по минимуму - фамилия, дата, адрес.

softwarer> адрес проживания, то с точки зрения того же фонда я
softwarer> понимаю единственное понятие "человек сообщил N адресов",
softwarer> где N - неотрицательное целое число.

Упростим до N=1. Ты различаешь "значения/ситуации"
"адрес неизвестен/не сообщил" и "сообщил, что нет адреса"?

softwarer> Я понимаю, к какой структуре данных ты натягиваешь но найти
softwarer> задачу, для которой она бы хорошо подходила, чертовски сложно

Я ни на что не натягиваю, я лишь демонстрирую на конкретных
примерах абсурдность тезиса "для дат, числовых атрибутов и пр.
"неизвестно" и "нулевое значение" отличаются, а для строковых - нет".

Можно, конечно, "донормализоваться" до того, что все строковые
атрибуты (в т.ч. справочники) должны будут иметь предоговорённое
значение ("пустая строка", "не задано" и пр.) и тогда пустая строка
действительно не понадобится или будет неотличима от Null, но это
лишь один из вариантов, и не общепринятый.

Нормальных форм много, больше одной. :)

softwarer> различаешь ли ты понятия "у жильца нет автомобиля"
softwarer> и "неизвестно, есть ли у жильца автомобиль"?

Если это нужно для учёта (парковочных мест и пр.) - безусловно.
Хотя это не строковое поле, в любом случае/варианте.

Posted via ActualForum NNTP Server 1.5

14 май 20, 22:38    [22133317]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
Гаджимурадов Рустам
И с адресами в приведённом примере нет никаких сложностей и веселухи, это строка. Простой журнал, всё по минимуму - фамилия, дата, адрес.

Если "простой журнал, всё по минимуму - фамилия, дата, адрес", то нет, я не различаю названных тобой ситуаций. Более того, в такой ситуации их никто и никогда их различает. Различают только две ситуации - "в графе есть адрес" или "в графе нет адреса". Всё очень просто, как в бумажной анкете. Человек сдаёт бумажку, а там в графе либо буквы, либо пустота / прочерк. И никаких "адрес есть, но неизвестен".

Ты пытаешься натянуть на эту простую ситуацию левое требование, которое не соответствует реальности, зато на поверхностный взгляд соответствует подразумеваемому тобой дизайну БД. Если вдруг спросить тебя - а зачем в этом простом журнале их различать? - ты не сможешь ответить ничего разумного.

Я отвечаю на это, что при подробном анализе оказывается, что твоего "простого дизайна с хаком" недостаточно, чтобы соответствовать усложнённым требованиям. Его сфера применения очень узка. Настолько, что реальных мест для него практически не случается. Твои "простые ситуации" годятся только на уровне учебных примеров из книжек "Освой SQL", а в реальной работе приходится делать как следует.

Извини за неделикатность, но я достаточно долго пытался объяснить это вежливо.

Гаджимурадов Рустам
Упростим до N=1. Ты различаешь "значения/ситуации"
"адрес неизвестен/не сообщил" и "сообщил, что нет адреса"?

Уйди от сферических коней в вакууме. Пока нет задачи, вообще ничего не нужно различать. Когда есть задача - можно говорить о её требованиях, о том, требуется ли в ней различать эти понятия и о дизайне, который подходит под эти требования.

Гаджимурадов Рустам
Я ни на что не натягиваю, я лишь демонстрирую на конкретных примерах

Где?! Покажи мне хоть один конкретный пример, который ты назвал. Ты оперируешь обрывками и общими словами.

Гаджимурадов Рустам
softwarer> различаешь ли ты понятия "у жильца нет автомобиля"
softwarer> и "неизвестно, есть ли у жильца автомобиль"?

Если это нужно для учёта (парковочных мест и пр.) - безусловно.

И как же ты будешь это различать? Обрисуешь дизайн БД?

Гаджимурадов Рустам
Хотя это не строковое поле, в любом случае/варианте.

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

Сообщение было отредактировано: 14 май 20, 23:00
14 май 20, 22:59    [22133324]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
softwarer> Различают только две ситуации - "в графе есть адрес" или "в графе нет адреса".
softwarer> Всё очень просто, как в бумажной анкете. Человек сдаёт бумажку, а там в графе
softwarer> либо буквы, либо пустота / прочерк. И никаких "адрес есть, но неизвестен".

Именно так, прочерк. Который в БД выродится либо в пустую строку
(не Null), либо в предоговорённое значение типа "__отсутствует".
А ты (видимо) для этой цели будешь пытаться добавить "галочку".


>> левое требование, которое не соответствует реальности
>> а зачем в этом простом журнале их различать?

Ась?! Необходимость отличать просто малоимущих
от бездомных - это левое требование? Серьёзно?


>> Его сфера применения очень узка. Настолько, что
>> реальных мест для него практически не случается.

Ты уж определись - "узка" или "не присутствует в реальной жизни".


>> Покажи мне хоть один конкретный пример, который ты назвал.
>> Ты оперируешь обрывками и общими словами.

То, что тебе пример не нравится или ты считаешь его обрывком -
вовсе не значит, что его нет. Но да, можно смотреть на жирафа и
утверждать "не может такого быть", не веря своим глазам.

Кстати, вот ещё пример, анкета (на допуск, на трудоустройство и пр.),
поле "наличие судимостей у близких родственников" - ты понимаешь
разницу между "нет судимостей" и "не располагаю сведениями"?


>> И как же ты будешь это различать? Обрисуешь дизайн БД?

Не понял вопроса. Если делать как надо (я никогда не автоматизировал
УК, парковки и пр., поэтому навскидку) - для квартиры (а не жильца)
есть числовой параметр "количество нужных/желательных парк.мест"
(или 2, если хочется их различать - ХЗ). Если парк.места отличаются
по формату/площади/иным параметрам (охрана и пр.) - выделяется
отдельная реляция 1-N. Строковых параметров тут нет.


>>>> Хотя это не строковое поле, в любом случае/варианте.
>>
>> Именно так. ... дотянуть этот пример до разумного состояния и реализации -
>> родится правильное решение, ... без отличия двух особых значений.

Во-первых, имена/отчества/адреса - это таки строковые поля/атрибуты,
в отличие от парковочных мест и пр. Во-вторых, уровней нормализации
как уже говорилось, не один, а много разных. Так что есть очень большая
разница между "по моему скромному мнению в соответствии с 5м уровнем
нормализации БД следует спроектировать так-то" и "в реальной жизни нет
отличия между отсутствующим строковым значение и неизвестным".



Posted via ActualForum NNTP Server 1.5

15 май 20, 09:14    [22133446]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
Гаджимурадов Рустам
Именно так, прочерк. Который в БД выродится либо в пустую строку
(не Null), либо в предоговорённое значение типа "__отсутствует"

"Предоговорное значение типа "отсутствует" - это решение, за которое надо немедленно увольнять по причине полного служебного несоответствия. Даже упоминать смешно.

Что касается прочерка... у меня была мысль, что ты начнёшь говорить что-нибудь типа "можно оставить пустой, и это будет представлено в БД как пустая строка, и можно поставить прочерк, и это будет аналог null", но я и вообразить не мог, что ты станешь натягивать на то, что прочерк - это аналог пустой строки.

Нет. Прочерк - это "особое значение, показывающее отсутствие значения". Null в чистом виде. Точно так же прочерк можно поставить в нестроковой графе анкеты, например, "стаж работы" (если его нет) или "дата смерти" (если человек жив). И в сколько-нибудь адекватной БД прочерк будет представлен именно что null-ом.

Гаджимурадов Рустам
А ты (видимо) для этой цели будешь пытаться добавить "галочку".

Чушь не пори.

Гаджимурадов Рустам
Ась?! Необходимость отличать просто малоимущих
от бездомных - это левое требование? Серьёзно?

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

Гаджимурадов Рустам
Ты уж определись - "узка" или "не присутствует в реальной жизни"

Я знаю один-единственный пример, когда дизайн с различием null и '' соответствует бизнес-логике. Кроме того, за десятилетия таких обсуждений я каждый раз просил дать мне примеры - и никто их не называл. Даже таких спорных, как у тебя - вообще не называли. Отделывались общими словами про особое значение null, идиотским аргументом про "а ноль тоже приравнять null-у" итп. Из этого я делаю вывод, что такого нет не только в моей практике, но и в практике тех, кто в спорах отстаивает этот подход. Но поскольку один пример я всё-таки знаю, я честно говорю "очень узка", а не "отсутствует в принципе".

Гаджимурадов Рустам
То, что тебе пример не нравится или ты считаешь его обрывком -
вовсе не значит, что его нет.

Не юли. Ты сказал про конкретные примеры - вот и приводи конкретные. Ты показываешь чьё-то ухо и говоришь, что показал жирафа.

Гаджимурадов Рустам
Кстати, вот ещё пример, анкета (на допуск, на трудоустройство и пр.), поле "наличие судимостей у близких родственников" - ты понимаешь разницу между "нет судимостей" и "не располагаю сведениями"?

Я ни разу не видел в такой анкете предусмотренного способа указать "не располагаю сведениями". Уверен, что и ты не видел. Что ещё ты придумаешь, лишь бы не признавать отсутствие реальных примеров?

Гаджимурадов Рустам
Не понял вопроса.

Это структурный аналог твоего вопроса, единственная разница, что вместо информации об адресе информация об автомобиле. Ответь так же, как, по твоим предположениям, я должен был бы ответить на твой.

Гаджимурадов Рустам

Если делать как надо (я никогда не автоматизировал
УК, парковки и пр., поэтому навскидку) - для квартиры (а не жильца)
есть числовой параметр "количество нужных/желательных парк.мест"
(или 2, если хочется их различать - ХЗ). Если парк.места отличаются
по формату/площади/иным параметрам (охрана и пр.) - выделяется
отдельная реляция 1-N. Строковых параметров тут нет.

Замечательно. Момент, который я предполагал, не упомянув явно - автомобили различаются между собой (точно так же, как адреса различаются между собой). Например, можно предположить, что номер авто нужен для проезда за шлагбаум. Или - в твоём примере с парковками - грузовик не может встать на место для легковушки. Ты для этого случая сказал - выделяется отдельная реляция. Согласен, это разумное и правильное решение. И обрати внимание - про адреса я сказал в точности то же самое, "от нуля до N фактических адресов". Это и есть правильное решение для этого случая, соответствующее логике реального мира. И сразу уходят "давай ограничимся одним автомобилем", "автомобиль - это строковый атрибут" и прочие странные соображения, единственный смысл которых - за уши притянуть дизайн с отличием null от пустой строки.

Гаджимурадов Рустам
Во-первых, имена/отчества/адреса - это таки строковые поля/атрибуты

Во-первых, это категорически не строковые атрибуты. Полное имя, как и адрес - это составной объект. Если бизнес-логика ограничена простыми операциями, может хватить plain text представления этого объекта. Примерно как xml можно положить в строковое поле, но это не делает "анкету на трудоустройство" строковым атрибутом.

Отчество - это вообще не атрибут. Это один из возможных типов "составляющей имени".

Гаджимурадов Рустам

в отличие от парковочных мест и пр. Во-вторых, уровней нормализации
как уже говорилось, не один, а много разных. Так что есть очень большая
разница между "по моему скромному мнению в соответствии с 5м уровнем
нормализации БД следует спроектировать так-то" и "в реальной жизни нет
отличия между отсутствующим строковым значение и неизвестным".

Извини, изложу это короче: "Бла-бла-бла, softwarer, ты излишне категоричен".

Это типовой упрёк в мою сторону. Я так не думаю, но могу и ошибаться. Факт в следующем: если взять любое реальное приложение, то окажется, что для 99.9% строковых полей в нём логике "null и пустая строка отличаются" не только не нужна, но и вредна. "Вредна" - означает, что в использующей её СУБД для решения той же задачи следует написать больше кода и выше вероятность допустить при этом ошибку. Поэтому даже если тебе удастся привести несколько примеров, когда эта логика полезна - с точки зрения разработки в целом рациональнее работать без неё, усложнив решение 0.1% задач ради упрощения 99.9% Можно считать моё мнение излишне категоричным, можно не считать, но факта это не отменит.

И да, можешь взять любое своё приложение и подсчитать - для скольких полей ты действительно используешь это различие. То, что ты не назвал ни одного примера из своей практики, говорит об этом количестве довольно ярко. Даже если не поднимать вопроса "а как стоило бы решить эту задачу на самом деле".
15 май 20, 10:42    [22133511]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
softwarer> Прочерк - это "особое значение, показывающее отсутствие значения". Null в чистом виде

Прочерк в графе "адрес" чем будет, повтори ещё раз?
Только без "проживания", "регистрации" и пр.

softwarer> Необходимость отличать их по адресу - это бред

Отличают не по адресу, а по статусу. Который может
определяться по галочке (видимо, твой вариант), а
может просто по соотв. записи в соотв. поле анкеты.

softwarer> Я крайне сомневаюсь, что "фонд помощи малоимущим" занимается таким
softwarer> Я не хочу фантазировать о бизнес-процессе, в существовании которого
softwarer> крайне сомневаюсь, но с большим удовольствием прочитаю твоё описание -
softwarer> как же работает этот воображаемый фонд. Не удивлюсь, так хоть посмеюсь.

Таким - в смысле "определяют статус бездомного по адресу"
или "различают бездомных и тех, у кого адрес неизвестен"?

> Я ни разу не видел в такой анкете предусмотренного способа
> указать "не располагаю сведениями". Уверен, что и ты не видел

Правильно, предусмотренного способа (галочки) нет.
Поэтому пишут текстом "не располагаю сведениями".
Те, кто поумнее. Те, кто не такие умные, пишут "нет",
"отсутвуют и пр.". Никогда не слышал? Просвещайся.

> Это структурный аналог твоего вопроса, единственная разница,
> что вместо информации об адресе информация об автомобиле.

Аналогов много можно придумать, но это не сделает
атрибуты других типов строковыми.

> Это и есть правильное решение для этого случая,
> соответствующее логике реального мира

Разве кто-то спрашивал твоё мнение о правильном решении?
В реальных анкетах нет граф/возможностей "приложите таблицу
с полным списком адресов" или "разбейте имя на составляющие".

> "null и пустая строка отличаются" не только не нужна, но и вредна

Ну т.е. разницы между "не существует" и "по твоему скромному
не нужна и вредна" тоже нет?

> из своей практики, говорит об этом количестве довольно ярко.

Во-первых, моя практика не покрывает все примеры реальной жизни.
Во-вторых, а смысл их тебе приводить, если ты на каждый говоришь
"неправильно", "обрывок", "надо отдельный атрибут/реляцию создавать"?

Ну ОК, ещё один из относительно недавнего - отдел кадров, воинский
учёт (ты и сам должен был сталкиваться) - номер военника/приписного,
разницу между "сотрудник не имеет документа" и "документ есть, но
номер неизвестен" (и разную реакцию на них) понимаешь? При чём
требования к учету менялись и ужесточались несколько раз, щас уже
есть и категории, и специальные формы т.д. Кстати, и снова об адресе -
адрес временного пребывания в данном случае тоже "тернарный" -
конкретный адрес, "отсутствует" (совпадает с м.ж.) и "неизвестен".

Posted via ActualForum NNTP Server 1.5

15 май 20, 13:25    [22133641]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
vavan
Member

Откуда: Казань
Сообщений: 3511
softwarer
"Вредна" - означает, что в использующей её СУБД для решения той же задачи следует написать больше кода и выше вероятность допустить при этом ошибку
помню что когда после стольких лет на оракле пришлось заюзать постгре в первый момент даже был определенный сюрприз с их различием null и пустой
15 май 20, 13:39    [22133649]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
Гаджимурадов Рустам
Прочерк в графе "адрес" чем будет, повтори ещё раз?

Прочерк в любой графе будет null-ом.

Гаджимурадов Рустам
Только без "проживания", "регистрации" и пр.

Вспомни об этом, когда ещё раз подумаешь, что даёшь "конкретные примеры".

Гаджимурадов Рустам
Отличают не по адресу, а по статусу.

Именно. То есть весь твой пафос в итоге свёлся к тому, что у человека есть статус (некое перечисление либо справочник). Есть некий бизнес-процесс, согласно которому он этот статус получает. В самом простом виде - по устному заявлению. То есть он говорит "я бездомный", секретарша выбирает в комбобоксе "Бездомный", при этом поле "Адрес" в интерфейсе автоматически исчезает. Может быть и более сложный процесс (например, запрос в ЕГРН). И всё это не имеет ни малейшего отношения к соотношению null-ов и пустых строк.

Гаджимурадов Рустам
Который может определяться по галочке (видимо, твой вариант)

Избитая тобой чушь пытается уползти и жалобно повизгивает.

Гаджимурадов Рустам
softwarer> Я крайне сомневаюсь, что "фонд помощи малоимущим" занимается таким

Таким - в смысле "определяют статус бездомного по адресу"
или "различают бездомных и тех, у кого адрес неизвестен"?

И второе, и тем более первое.

Гаджимурадов Рустам
Правильно, предусмотренного способа (галочки) нет.

Глупость стёр. Итак, предусмотренного способа нет. Соответственно, различение этого автором анкеты не предполагается. Не нужна была эта информация тому, кто анкету составлял. Соответственно, ты придумал левое требование о том, что она нужна.

Гаджимурадов Рустам
Поэтому пишут текстом "не располагаю сведениями"
Те, кто поумнее.

После чего кадровичка говорит "Вы испортили бланк" и те, кто считает себя умными, идут добывать сведения и потом переписывать анкету заново.

Гаджимурадов Рустам
Те, кто не такие умные, пишут "нет",
"отсутвуют и пр.". Никогда не слышал? Просвещайся.

Нет, такую чушь я действительно слышу в первый раз.

Гаджимурадов Рустам
Аналогов много можно придумать, но это не сделает атрибуты других типов строковыми.

И хорошо, что не сделает. Это только ты пытаешься сделать строковыми атрибутами то, что ими не является.

Гаджимурадов Рустам
Разве кто-то спрашивал твоё мнение о правильном решении?

Ты правда хочешь провести разговор в подобной манере?

Гаджимурадов Рустам
В реальных анкетах нет граф/возможностей "приложите таблицу
с полным списком адресов" или "разбейте имя на составляющие"

Чушь. В реальных анкетах во всех случаях, когда нужно, есть таблицы. Типовые примеры - список ближайших родственников в анкете при трудоустройстве и список мест работы в анкете на загранпаспорт. Разбиение имени на составляющие в анкетах иногда есть, иногда нет - легко найти примеры обоих вариантов, хотя правильнее было бы, чтобы его не было.

Гаджимурадов Рустам
Ну т.е. разницы между "не существует" и "по твоему скромному
не нужна и вредна" тоже нет?

Если под "не существует" ты имеешь в виду какую-либо мою цитату, то приведи её узнаваемо и без внесённых искажений. Тогда смогу ответить, хотя скорее всего ответ будет в самой цитате, если её прочитать. Если ты имеешь в виду что-то другое - вообще не понимаю смысла вопроса.

Гаджимурадов Рустам
Во-первых, моя практика не покрывает все примеры реальной жизни

И не нужно. Достаточно, чтобы она дала адекватное количество примеров и могла дать больше, если потребуется. Например, в том проекте, над которым я сейчас работаю, на текущий момент 2791 строковый атрибут, для которых различие пустой строки и null вредно.

Гаджимурадов Рустам
Во-вторых, а смысл их тебе приводить, если ты на каждый говоришь
"неправильно", "обрывок", "надо отдельный атрибут/реляцию создавать"?

То есть, ты способен дать пример только если с тобой во всём соглашаться? Ну это мощный аргумент в пользу пропагандируемого подхода Ты бы хоть на NDA сослался, что ли, "у нас есть секретные поля, но мы их вам не покажем".

Гаджимурадов Рустам
Ну ОК, ещё один из относительно недавнего - отдел кадров, воинский
учёт (ты и сам должен был сталкиваться) - номер военника/приписного, разницу между "сотрудник не имеет документа" и "документ есть, но номер неизвестен" (и разную реакцию на них) понимаешь?

Нет, не понимаю. Когда я с этим сталкивался, кадровичка писала "вот список необходимых документов, принесите". Предполагаю, что если бы я не принёс - она сказала бы "принесите, без этого не могу оформить" или "ладно, пока пропущу, но обязательно принесите завтра" или что-нибудь в этом духе. Я совершенно убеждён, что она не вносила в БД ничего со смыслом "военник у него есть, но номер неизвестен". Я вот даже просто технически не представляю себе этот процесс. Прихожу я устраиваться на работу и говорю "Военник у меня есть, но я его вам не покажу", так, что ли? Представляю себе "разную реакцию" на этот случай.

Как я сейчас погуглил, военнообязанные при устройстве на работу обязаны иметь и предоставить документы военного учёта. Соответственно, расклад такой. У сотрудника есть статус (военнобязанный или нет). Если военнообязанный, то должен принести документ. Если не принёс, то считается, что он не стоит на учёте, в этом случае он должен стать на учёт и принести документ. Если не принёс и не хочет, то у работодателя возникает обязанность сообщить в комиссариат. Никаких "документ есть, но номер неизвестен" в процессе не предусмотрено.

Таким образом, для учёта этого возникает следующий набор атрибутов:

  • отношение к военной обязанности
  • документ воинского учёта (номер, возможно дополнительные данные оттуда - не знаю)
  • дата, до которой ожидается предоставление документа воинского учёта (для военнобязанных при его отсутствии)
  • дата отправки в комиссариат информации о непредоставлении

Что не так?

Гаджимурадов Рустам
Кстати, и снова об адресе - адрес временного пребывания в данном случае тоже "тернарный" - конкретный адрес, "отсутствует" (совпадает с м.ж.) и "неизвестен".

Не понимаю, где ты нашёл тернарность. Раз упоминается "совпадает с м.ж.", значит есть адрес м.ж. Значит, просто есть два айдишника - "адрес м.ж." и "адрес временного пребывания". В том числе они могут совпадать.

Сообщение было отредактировано: 15 май 20, 14:23
15 май 20, 14:23    [22133693]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
ma1tus
Member

Откуда:
Сообщений: 738
Гаджимурадов Рустам
об адресе -
адрес временного пребывания в данном случае тоже "тернарный" -
конкретный адрес, "отсутствует" (совпадает с м.ж.) и "неизвестен".

Не тернарный. Каждый вид адреса существует и обрабатывается отдельно и заполняется или вручную или по кнопке "Заполнить из <имеющегося другого>".

Гаджимурадов Рустам
разницу между "сотрудник не имеет документа" и "документ есть, но
номер неизвестен"

Если документ есть, но номер не известен - в таблице идентифицирующих документов указывается вид документа, а номер не ставится.
Если же сделано убого, и в таблице сотрудников вместо чека "военнообязанный" (/ годен / ограниченно / не годен / снят с учета) заложили поле "номер военника", то - пусто = не предоставлено.

Сообщение было отредактировано: 15 май 20, 15:11
15 май 20, 15:09    [22133725]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
softwarer> То есть он говорит "я бездомный", секретарша выбирает в комбобоксе

В каком ещё комбобоксе? Мы до компьютера ещё
не дошли, мы говорим о "логике реального мира".

> или "различают бездомных и тех, у кого адрес неизвестен"?
>
> И второе, и тем более первое.

Ну т.е. по-твоему скромному мнению для всех фондов, БО,
хосписов, ЦПП т.д. бездомные и "у кого адрес неизвестен" -
это одинаковые с т.з. отношения и действий лица? ОК, тут
даже разговаривать больше не о чем.

> Соответственно, различение этого автором анкеты не предполагается.
> Не нужна была эта информация тому, кто анкету составлял.



В анкетах в конце даже бывает пункт/примечание про
"заведомо ложные сведения".

> После чего кадровичка говорит "Вы испортили бланк"

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

> Нет, такую чушь я действительно слышу в первый раз.

Это в смысле не слышал про "родственники не привлекались"
или про соотв. пункт в анкетах? Или что "идиоты, надо было
прочерк ставить или пусто оставлять"?

> Это только ты пытаешься сделать строковыми атрибутами то, что ими не является.

Скорее, я не пытаюсь из строковых атрибутов непременно
выделять галочки и комбобоксы ради религиозного пункта
"чтобы Null и пустая строка не отличались", равно как и
внормализовать абсолютно всё до абсурда максимума.

> Ты правда хочешь провести разговор в подобной манере?

Это не манера, это намёк, что мы обсуждаем не твоё/моё
мнение об идеальной/правильной реализации конкретной
бизнес-логики в БД, а о самой исходной бизнес-логике.

> В реальных анкетах во всех случаях, когда нужно, есть таблицы.



> Если ты имеешь в виду что-то другое - вообще не понимаю смысла вопроса.

Я даже не знаю, как перефразировать. Ты видишь/понимаешь
разницу между "ABCD не существует" и "по твоему скромному
ABCD не нужно и вредно"? Безотносительно самого ABCD .

> Нет, не понимаю.

А она есть, включая статью КоАП со штрафом.

> в БД ничего со смыслом "военник у него есть, но номер неизвестен"

Опять БД... Кадровичка что такое БД может даже не
знать, у неё учет может быть до сих пор бумажный.

> Если не принёс, то считается, что он не стоит на учёте


Posted via ActualForum NNTP Server 1.5

15 май 20, 17:45    [22133852]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
Гаджимурадов Рустам
В каком ещё комбобоксе?

В том самом, в котором журнал.

Гаджимурадов Рустам
Мы до компьютера ещё не дошли, мы говорим о "логике реального мира"

Тогда оцени с этой позиции свои собственные тезисы. По логике реального мира бездомность вообще никак не связана с адресом в анкете. Ты правильно сказал, это просто статус. Причём на практике по улицам бродит немало людей, у которых есть прописка - а они всё равно бездомные, по факту.

Гаджимурадов Рустам
Ну т.е. по-твоему скромному мнению для всех фондов, БО, хосписов, ЦПП т.д.

Во-первых, снова зафиксируем вот этот момент про "конкретный пример". Здесь ты прямо очень ярко описал, насколько твой пример конкретен.

Во-вторых, у фондов, баз отдыха, хосписов и центров профессиональной подготовки куча бизнес-процессов. Фантазировать, какие из них ты имел в виду и как именно я не собираюсь, а ты не рассказываешь. Собственно, я уверен, что ты и сам ни хрена их не обдумал, а просто говоришь общие слова и собираешься дальше сориентироваться по ситуации.

И, наконец, в-третьих, давай возьмём самое определённое из сказанного тобой - хоспис. Допустим, в нём находится гражданка Иванова, про которую нам нужно знать, что "адрес у неё есть, но нам неизвестен". Это значит, что во-первых, адрес нам зачем-то нужен, а во-вторых, гражданка Иванова не в состоянии его сообщить. Может, она забыла, может, лежит без сознания итп. И вот, лежит в хосписе гражданка Иванова, без сознания, у неё адрес неизвестен. А рядом лежит гражданка Петрова, тоже без сознания, она бездомная. Расскажи, мил человек, что такого разного будут делать с этими телами в хосписе в зависимости от адреса, чтобы это прозвучало сколько-нибудь разумно?

Гаджимурадов Рустам
Во-первых, не говорит.

Говорит, говорит. Если, конечно, соискатель не друг Иван Фёдорыча и тот не велел закрыть на это глаза.

Гаджимурадов Рустам
Во-вторых, рассматривает/решает вовсе не кадровичка (кроме как при трудоустройстве)

Не суть. Хоть секретарша, хоть кикимора. Хотя забавно: ты сам назвал два примера из двух, когда именно кадровичка, а теперь "не кадровичка".

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

Давай ты лучше при мне попробуешь устроиться куда-нибудь на работу, написав в таких пунктах "сведений не имею". Потом судьёй итп.

Гаджимурадов Рустам
Это в смысле не слышал про "родственники не привлекались"
или про соотв. пункт в анкетах?

Это в смысле уже устану перечислять.

Гаджимурадов Рустам
Скорее, я не пытаюсь из строковых атрибутов непременно
выделять галочки

Насколько я помню топик, в нём слово "галочки" употреблял только ты. Так что снова кривишь душой, ты как раз единственный, кто пытался их выделять.

Гаджимурадов Рустам
и комбобоксы ради религиозного пункта "чтобы Null и пустая строка не отличались"

Фи, как передёргиваешь. Сам сказал "статус", я тебя за язык не тянул. Будешь спорить, что статусы - это перечисление, которое типично редактируется соответствующими компонентами (чекбокс, комбобокс, радиогруппа итп)? А теперь оказывается, что твои слова - мой хитрый план ради моего же религиозного пункта.

Ну ты уж давай, скажи откровенно - я, мол, делаю атрибут "адрес", и в нём помимо адреса определённые магические значения означают определённые статусы, причём даже не адреса, а человека, и считаю, что это правильно и надо именно так. Отпадут все вопросы.

Гаджимурадов Рустам


Спасибо, я уже понял, что этой последовательностью символов ты кодируешь понятие "Ой, всё".

Гаджимурадов Рустам
Я даже не знаю, как перефразировать. Ты видишь/понимаешь
разницу между "ABCD не существует" и "по твоему скромному
ABCD не нужно и вредно"? Безотносительно самого ABCD

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

Гаджимурадов Рустам
А она есть, включая статью КоАП со штрафом.

Ну так ответь на заданный вопрос "что не так".

Гаджимурадов Рустам

> в БД ничего со смыслом "военник у него есть, но номер неизвестен"

Опять БД... Кадровичка что такое БД может даже не
знать, у неё учет может быть до сих пор бумажный.

Тебе кроме придирок к словам заняться нечем? Ну хорошо, не в БД, а на бумаге. Я уверен, что она и в бумажном учёте нигде не пишет "номер есть, но неизвестен". Будешь утверждать, что пишет?
15 май 20, 18:22    [22133884]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
softwarer> В том самом, в котором журнал.

Там появились комбобоксы? В анкетах максимум можно
сделать галочку или перечисление (аналог комбобокса).
Когда в журнале простая графа "адрес" - комбобокса нет.

> Тогда оцени с этой позиции свои собственные тезисы.
> По логике реального мира бездомность вообще никак
> не связана с адресом в анкете. ... есть прописка

Я разве что-то говорил про прописку? А бездомность
и несвязанность с адресом это смешно, да. Т.е. такой
случай можно реально придумать - типа, когда адреса
реально нет, но не бездомный, или наоборот, адрес есть
(но это будет не адрес м.ж.), но бездомный, но они к
упомянутому примеру относиться не будут.

> Во-первых, снова зафиксируем вот этот момент про "конкретный пример".
> Здесь ты прямо очень ярко описал, насколько твой пример конкретен.
> Во-вторых, у ... баз отдыха, .... и центров профессиональной подготовки

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

> что такого разного будут делать с этими телами в хосписе в зависимости
> от адреса, чтобы это прозвучало сколько-нибудь разумно?

Если адрес Ивановой станет известен, то при возможности
выписки - выпишут, конечно. Но ты сам вопрос/ситуацию
сформулировал неправильно. Если поступил бездомный
(тем более, если не первый раз), то могут не искать родных.
Если поступил человек с неизвестным адресом - будут искать
адрес, родных, помогать восстановить документы, если нужно.

> Хотя забавно: ты сам назвал два примера из двух,
> когда именно кадровичка, а теперь "не кадровичка".



Если два из двух - это "на допуск, на трудоустройство",
то во-первых, кадровичку я не упоминал, а во-вторых,
кадровичка там не более чем передаточное звено, как
почта, решение принимает вообще другая организация.

> Давай ты лучше при мне попробуешь



Нет, уж, спасибо. Во-первых, я не подхожу по
требованиям (хотя на гостайну я именно так и
писал IIRC), во-вторых, я рассказал реальные
примеры, при чём некоторые есть и в сети,
некоторые даже были довольно "громкими".
Но можешь и мне не верить, и этим интернетам
не верить, все врут, конечно.

> которое типично редактируется соответствующими компонентами

А не типично? Если жираф не похож на типинчую лошадь - его уже нет?

> Будешь утверждать, что пишет?

Нет, конечно, но ориентироваться она будет не на галочки
в соотв. форме (если она их заполнила), а на ксерокопии
военников (или их отсутствие).

Posted via ActualForum NNTP Server 1.5

15 май 20, 20:01    [22133939]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61873
Блог
Гаджимурадов Рустам
Там появились комбобоксы? В анкетах максимум можно
сделать галочку

Кажется, я наконец-то понял причину наших разногласий. Для тебя реальный мир - это бумажная анкета. Если на человека нет документа - его не существует, если в анкете не написан адрес - он бездомный итп. А для меня что бумажная анкета, что таблица в базе данных - формы представления одной и той же информации, различающиеся мелкими техническими деталями, а мир - это тот самый человек (который может не соответствовать информации, если БД спроектирована плохо).

Гаджимурадов Рустам
Когда в журнале простая графа "адрес" - комбобокса нет.

Попробую объяснить на твоём языке. Когда в журнале простая графа "адрес" - он не бездомный. И не домный. У него просто заполнен (или не заполнен) адрес. Бездомный он тогда, когда в анкете есть графа "статус проживания", эта графа заполнена в установленном порядке, и в ней написано "бездомный".

Гаджимурадов Рустам

> Во-первых, снова зафиксируем вот этот момент про "конкретный пример".
> Здесь ты прямо очень ярко описал, насколько твой пример конкретен.
> Во-вторых, у ... баз отдыха, .... и центров профессиональной подготовки

Нет, ты всего лишь продемонстрировал уровень своих
представлений о предмете,

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

Гаджимурадов Рустам

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

Интересно, ты это всерьёз? Впрочем, я этого никогда не узнаю.

Гаджимурадов Рустам

> что такого разного будут делать с этими телами в хосписе в зависимости
> от адреса, чтобы это прозвучало сколько-нибудь разумно?

Если адрес Ивановой станет известен, то при возможности
выписки - выпишут, конечно.

Как это? Ну то есть вот лежит тело Ивановой без сознания. Его что, привезут по этому адресу, вскроют дверь, бросят у входа и уедут? Нет, если ты скажешь, что в хосписах поступают именно так, мне придётся поверить... пока я не спрошу у кого-нибудь компетентного, как происходит на самом деле.

Гаджимурадов Рустам

Но ты сам вопрос/ситуацию
сформулировал неправильно. Если поступил бездомный
(тем более, если не первый раз), то могут не искать родных.
Если поступил человек с неизвестным адресом - будут искать
адрес, родных, помогать восстановить документы, если нужно.

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

Гаджимурадов Рустам

Если два из двух - это "на допуск, на трудоустройство",
то во-первых, кадровичку я не упоминал,

Не упоминал. Но мы вроде все знаем, кто занимается трудоустройством и общается с РСО. Поэтому твой протест про кадровичку выглядел довольно забавно.

Гаджимурадов Рустам
а во-вторых,
кадровичка там не более чем передаточное звено,

Это передаточное звено осуществляет функцию первичной (а иногда и не только) проверки. Ну как тебе объяснить.... в реальном мире, когда ты заполняешь анкету на загранпаспорт, её принимает тётенька в МФЦ. Решение - выдать ли тебе загранпаспорт - принимает совсем не тётенька. Но если ты, заполняя список родственников, напишешь там что-нибудь типа "сведений не имею", она скажет тебе, что такую анкету не примет и никуда не передаст. Потому как если примет и передаст, ей дадут по шее и скажут больше не принимать и не передавать. Осознав эту информацию, ты пойдёшь переписывать анкету, предварительно выяснив у тётеньки, как именно её нужно правильно заполнять.

Гаджимурадов Рустам
во-вторых, я рассказал реальные примеры, при чём некоторые есть и в сети, некоторые даже были довольно "громкими"

Вот только сегодня один коллега писал на форуме, что в списке организаций, которым государство оказывает поддержку в связи с коронавирусом, затесалось онлайн-казино. Тоже громкий случай, и не исключено даже, реальный пример - в нашей стране вполне может быть.

Гаджимурадов Рустам
А не типично?

И типично, и нетипично статус остаётся статусом, справочник - справочником, а выбирается он из комбобокса или откуда - дело десятое, как бы ты ни пытался цепляться к словам.

Гаджимурадов Рустам
> Будешь утверждать, что пишет?

Нет, конечно, но ориентироваться она будет не на галочки
в соотв. форме (если она их заполнила), а на ксерокопии
военников (или их отсутствие).

Итак, не пишет. Оставляя все прочие пикантные моменты, давай вспомним про главную тему. Итак, "а на ксерокопии военников или их отсутствие". Твои слова? Не открещиваешься? Тогда ответь на два простых вопроса:

1. Как она по наличию или отсутствию ксерокопии отличает ситуации "военника нет" и "военник есть, но его номер неизвестен"? Вот только не говори, что она для этого заботливо замазывает номер на ксерокопии

2. Ты привёл это как пример ситуации, где надо различать пустую строку и null. Ну и где здесь эта необходимость? Где вообще хоть какая-нибудь строка?

Сообщение было отредактировано: 15 май 20, 20:52
15 май 20, 20:53    [22133962]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC - присвоить Null полю  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 61404
softwarer> Если на человека нет документа - его не существует,
softwarer> если в анкете не написан адрес - он бездомный итп




softwarer> Бездомный он тогда, когда в анкете есть графа "статус проживания",
softwarer> эта графа заполнена в установленном порядке, и в ней написано "бездомный".

Это может быть соотв. значение, прочерк, да что угодно -
конкретный способ (используемый конкретными людьми)
непринципиален, принциальна разница между "не знаем",
и "знаем, что [не]..."

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


softwarer> перепрыгнул от "фонда помощи малоимущим" к
softwarer> "центрам паллиативной медицины", и, по-моему, даже не заметил этого.

Не я перепрыгнул, а речь пошла о них. В случае, если это будет
обычная столовка для бездомных/малоимущих, принцип будет
примерно тот же.

> Интересно, ты это всерьёз?

Что конкретно?

> Как это? Ну то есть вот лежит тело Ивановой без сознания

Разговаривать (да и рассуждать) в духе "тело без сознания"
смысла нет. На улицу так не выбросят в любом случае.
Как я уже упомянул - в случае, если адрес известен, то
попытаются связаться/найти родных - в зависимости от
ситуации, чтобы был "домашний паллиатив в семье" с
выездной помощью по необходимости, или перевезти
в хоспис "поближе к" или просто чтобы родные успели
попрощаться/похоронить у себя.

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

Но при этом ты довольно уверенно и безапелляционно
споришь, или мне показалось?

> "адрес есть, а по адресу никого нет" - для чего в этом случае отличать
> "бездомных" от "адрес есть, но неизвестен". И вот этот момент настал.

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

> Это передаточное звено осуществляет функцию первичной
> (а иногда и не только) проверки. ... тётенька в МФЦ

Может и осуществляет. А может и нет, в каких-то вопросах.
Т.е. МФЦ скажет, конечно, с неё станется, а кадровичка - не
факт, а почта, по которой можно/нужно послать документы
в каких-то случаях - совершенно точно ничего не скажет.

> и не исключено даже, реальный пример

Ну и отлично.

> Итак, не пишет. Оставляя все прочие пикантные моменты

Реально-то она будет помнить/вести список на бумажке
"кто мне ксерокопии должен", а так да, не пишет. :)


> 1. Как она по наличию или отсутствию ксерокопии отличает
> ситуации "военника нет" и "военник есть, но его номер неизвестен"?

Правильный вопрос в данном случае звучал бы как
"военник есть, но ксерокопии нет". И ответ - да, никак
не знает, хотя ситуации разные. Будет шерстить и
проверять всю картотеку, спрашивать всю женскую
половину "а нет ли у тебя военника, красавица?" и т.д.

> Где вообще хоть какая-нибудь строка?

А, в смысле что серийник строка, а ксерокопия нет...
Согласен, пусть будет так, пусть будет категория.

Posted via ActualForum NNTP Server 1.5

15 май 20, 21:51    [22133982]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5      [все]
Все форумы / Delphi Ответить