|
v8: Отличие "null", "неопределено" и "пустое значение" | ☑ | ||
---|---|---|---|---|
0
Oksana_74
26.01.12
✎
08:09
|
Подскажите, пожалуйста в чем различие и что общего.. А то я уже окончательно запуталась...
|
|||
72
Песец
26.01.12
✎
11:19
|
(47) Можно и шарик. Переоборудовав горшок в горшок для хранения шариков. Можно и сразу в горшок для меда запихать шарик, горшок сам переоборудуется для хранения шариков, если это предусмотрено конструкцией горшка. Или запихивалка конвертирует шарик в тряпочку, если горшок недостаточно универсален и может хранить либо мед, либо тряпочки.
|
|||
73
Ненавижу 1С
гуру
26.01.12
✎
11:19
|
(72) демагогия
|
|||
74
Гот
26.01.12
✎
11:20
|
(71) Так какое? :)
|
|||
75
Ненавижу 1С
гуру
26.01.12
✎
11:21
|
(74) вот и подумай, заодно тип этого значения ( не тип поля - он составной), а тип значения по умолчанию скажешь
|
|||
76
Гот
26.01.12
✎
11:25
|
(75) Тут не надо думать, тут надо знать.
А вот ты, судя по всему, не понимаешь, что "тип значения в терминах" 1С к СУБД вообще никакого отношения не имеет. Апофеоз быдлокодера. Ты вообще, очередной знаток всего, можешь перечислить все типы данных, которые хранят реляционные СУБД? |
|||
77
Ненавижу 1С
гуру
26.01.12
✎
11:27
|
(76) так, скатились опять
не надо путать уровни абстракции, если мы говорим в терминах слоя абстракции 1С, то там есть Неопределено, если в терминах слоя абстракции СУБД, то там его нет (это более низкий уровень), если в терминах файловой системы, то там и никаких DATETIME к примеру нет |
|||
78
Mort
26.01.12
✎
11:44
|
(76) Ну вообще вопрос "можешь перечислить все типы данных, которые хранят реляционные СУБД" как бы сам по себе намекает на квалификацию задающего.
|
|||
79
Гот
26.01.12
✎
11:44
|
(77) Так и в чем противоречие? NULL, в твоих терминах - на уровне "абстракции" SQL, как реализация левых соединений, Неопределено - функция 1С, аналогичная undefined в некоторых языках, позволяющих работать с СУБД, ПустоеЗначение - вообще частное решение 1С.
|
|||
80
Гот
26.01.12
✎
11:44
|
(78) Да? И что, по-твоему постановка вопроса некорректна?
|
|||
81
Mort
26.01.12
✎
11:46
|
(80) Никто не запрещает написать РБД использующую исключительно числовые поля.
|
|||
82
Гот
26.01.12
✎
11:47
|
(81) И?
|
|||
83
Гот
26.01.12
✎
11:47
|
Какие еще "поля" (поля, ппц...) можно использовать?
|
|||
84
Mort
26.01.12
✎
11:47
|
(82) Картинку нарисовать?
|
|||
85
Гот
26.01.12
✎
11:48
|
(84) Нарисуй, ага.
|
|||
86
Ненавижу 1С
гуру
26.01.12
✎
11:49
|
(79) неопределено не функция
|
|||
87
Mort
26.01.12
✎
11:50
|
(83) Блин, да хоть для хранения комплексных чисел. Или ты выучил одну конкретную РБД и решил что это панацея?
|
|||
88
Sammo
26.01.12
✎
11:50
|
(77) Емнип, в терминах СУБД неопределено - это значит не заполнена колонка, где хранится тип ссылочного реквизита составного поля. С точки зрения SQL - согласен.
|
|||
89
Mort
26.01.12
✎
11:50
|
+(87) Им ввиду СУБД а не само понятие РБД
|
|||
90
ПиН
26.01.12
✎
11:51
|
давайте уже составим коллективное письмо в 1с чтобы отменили все эти неопределено и пустоезначение, а то скоро одинэсники все передерутся...
|
|||
91
Ненавижу 1С
гуру
26.01.12
✎
11:51
|
(90) не.. не.. не.. ))
|
|||
92
Гот
26.01.12
✎
11:52
|
(87) Так рисуй уже.
|
|||
93
Гот
26.01.12
✎
11:52
|
Только сначала объясни, что ты хочешь доказать?
|
|||
94
Mort
26.01.12
✎
11:57
|
(92) Ага. Щас.
На пальцах. Список типов которые будет использовать СУБД зависит только от желания разработчиков конкретной СУБД. Нельзя сказать набор используемых типов для всех СУБД вообще. Поэтому вопрос в (76) ламерский. |
|||
95
Ненавижу 1С
гуру
26.01.12
✎
11:57
|
Гот ты отвечаешь только на удобные для тебя вопросы?
В рамках абстракции модели 1С записи могут хранить значения Неопределено и пустые ссылки, ты согласен? NULL понятие как на уровне абстракции СУБД, так и 1С, но они несколько различаются, согласен? Неопределено это не функция, согласен? |
|||
96
cobRA
26.01.12
✎
11:57
|
(76) Скажи, добрый молодец, что тогда означают 0x00000000 и 0x00000000000000000000000000000000 в 1С-ких таблицах. Подсказка - это не NULL
|
|||
97
rs_trade
26.01.12
✎
11:57
|
(86) почему нет? в зависимости от значения двух полей, возвращается тот или иной результат.
|
|||
98
Ненавижу 1С
гуру
26.01.12
✎
11:59
|
(97) э... ребята, я так могу и весь компьютер функцией назвать, почему нет?
|
|||
99
Sammo
26.01.12
✎
12:01
|
(95) Что-то мне кажется - ты теряешь еще 1 уровень абстракции. Ты говоришь про уровень 1с (где есть Неопределено) и SQL (где нет Неопределено)
Но между ними есть еще уровень, как платформа преобразует свои данные в данные СУБД. И вот здесь и возникает - что-то преобразуется к типам СУБД, что-то делается алгоритмически. |
|||
100
Гот
26.01.12
✎
12:02
|
(94) Какие вообще бывают типы?
(95) Согласен, Согласен, Не_согласен. |
|||
101
Ненавижу 1С
гуру
26.01.12
✎
12:04
|
(99) понятно, что оно преобразует, всякий перезод от одного уровня к другому есть преобразование-интерпретация
(100) тогда поясни |
|||
102
Mort
26.01.12
✎
12:06
|
(100)
"Какие вообще бывают типы?" - Нову тему заведи с этим вопросом. Только завтра, ибо пятнично. |
|||
103
Гот
26.01.12
✎
12:09
|
(102) Ты не ответил ни на один вопрос, тролль. Поэтому пшел на_ер.
(101) Хорошо, неопределено - это глобальная переменная, в которой содержится элементарное "на уровне абстракции 1С" неопределенное значение, смысл которо |
|||
104
Гот
26.01.12
✎
12:10
|
й - любая переменная, значение которой не указано.
|
|||
105
Ненавижу 1С
гуру
26.01.12
✎
12:12
|
(13) нет, Неопределено это:
1. Тип данных 2. Значение (единственное) этого типа данных 3. В тексте кода или запроса - константа, соответствующая значению из пункта 2 |
|||
106
Mort
26.01.12
✎
12:14
|
(103) Просто ты задаешь вопросы уровня школьника начинающего изучать Basic.
|
|||
107
Начинающий Программер
26.01.12
✎
12:30
|
Ещё есть ПустаяСтрока() и ПустаяСсылка().
|
|||
108
Jaffar
26.01.12
✎
13:14
|
(10) "Оксана_74" - пол мужской? :-)
|
|||
109
Ненавижу 1С
гуру
26.01.12
✎
13:30
|
(108) Оксана жжет напалмом v8: Написать программу с количеством рабочих дней
|
|||
110
Shurjk
26.01.12
✎
13:35
|
Какого эту ветку не закрыли - ведь откровенная провокация.
|
|||
111
Vladal
26.01.12
✎
13:38
|
(52) А шо в нём есть?
|
|||
112
Jaffar
26.01.12
✎
13:53
|
(110) почему? в этой ветке тоже не все завсегдатаи проявили 100% точные знания, а в той ветке она просто не сказала, что это тестовая задача, и не имеет с реальностью ничего общего.
|
|||
113
Shurjk
26.01.12
✎
13:54
|
(112) Да уже третья ветка за неделю, а теv завсегдатаям которые так и не смогли разобраться с тем что такое NULL уже ничего не поможет.
|
|||
114
Mort
26.01.12
✎
14:04
|
(113) Для завсегдатаев таких веток вопрос "что и как есть" уже давно решен. Тут вопрос (философский) стоит в преимуществе различных абстрактных моделей над другими. Короче, если не в теме, не мешайте развлекаться.
|
|||
115
Shurjk
26.01.12
✎
14:06
|
(114) Какие нафиг философские вопросы, абстракции какие то приплели, вопрос то простейший.
|
|||
116
Mort
26.01.12
✎
14:12
|
(115) Ты про вопрос в (0)? Да на него давно ответили и забыли.
|
|||
117
Shurjk
26.01.12
✎
14:13
|
(166) Ну а все остальное тогда к чему?
|
|||
118
Mort
26.01.12
✎
14:16
|
(117) Это локальный мем на мисте. Началось где-то тут Неопределено и пустая ссылка это зло 1С 8
|
|||
119
Shurjk
26.01.12
✎
14:18
|
(118) От большого ума что ли такие измышления.
|
|||
120
Ненавижу 1С
гуру
26.01.12
✎
14:18
|
(118) да народ просто хочет жить с закрытыми глазами, им так удобнее
|
|||
121
Shurjk
26.01.12
✎
14:21
|
(120) А вот скажи мне к примеру не в 1с а просто в СУБД что пишеться в поле числового типа если оно не задано?
|
|||
122
Mort
26.01.12
✎
14:28
|
(121) "Просто в СУБД" это от какого производителя? От Васи Пупкина? Что угодно. И что значит не задано? Где не задано?
|
|||
123
Ненавижу 1С
гуру
26.01.12
✎
14:28
|
(121) NULL например
|
|||
124
Shurjk
26.01.12
✎
14:30
|
(122) (123) Ндаа, тут похоже тупизм достиг совего апогея
- бросали бы вы господа программирование - не ваше это, а шли бы там в филосы какие нибудь там есть о чем порассуждать. |
|||
125
Ненавижу 1С
гуру
26.01.12
✎
14:31
|
(124) ну-ну, спасибо так сказать за содержательную дискуссию
|
|||
126
Shurjk
26.01.12
✎
14:32
|
(125) А о чем дискутировать с человеком для которого ноль и NULL это одно и то же.
|
|||
127
Ненавижу 1С
гуру
26.01.12
✎
14:33
|
(126) а кто это сказал? откуда такие выводы?
|
|||
128
Shurjk
26.01.12
✎
14:34
|
(127) см (123) + (121)
|
|||
129
Mort
26.01.12
✎
14:34
|
Второй Гот пошел...
|
|||
130
Ненавижу 1С
гуру
26.01.12
✎
14:36
|
(128) так ты же сам сказал "не в 1с а просто в СУБД"
так вот если напишу в "просто СУБД" INSERT INTO ... и пропущу там это поле и вполне может туда записаться NULL (нет DEFAULT значения и триггеры его не меняют) |
|||
131
wertyu
26.01.12
✎
14:37
|
Поступившие в продажу пиписькометры подлежат отзыву, - как рассказал нашему спецкорру главный конструктор предприятия Иванов А.И., - там досадная ошибочка, в результате вместо конкретного значения приборы выдают: null, неопределено, пустое значение. Приносим свои извинения покупателям.
|
|||
132
Shurjk
26.01.12
✎
14:41
|
(130) Ндаа... не второй такой дискуссии мои нервы не выдержат.
Читайте определение NULL до полного просветления - кстати для всех субд оно одинаковое. |
|||
133
Jaffar
26.01.12
✎
14:42
|
(131) а они на какой СУБД реализованы? :-)
|
|||
134
Ненавижу 1С
гуру
26.01.12
✎
14:43
|
(132) посылать я и сам умею, а то что нервы не в порядке - так и не лезь тогда
так в чем я не прав в (130)? |
|||
135
Shurjk
26.01.12
✎
14:43
|
(134) В том что ты пишешь непонятно что в типизированное поле, и уж NULL там точно храниться не будет.
|
|||
136
Ненавижу 1С
гуру
26.01.12
✎
14:45
|
(135) интересно, а как же все таки в типизированных полях СУБД (а есть нетипизированные?) попадают значения NULL?
|
|||
137
Mort
26.01.12
✎
14:49
|
Что, интересно, щас придумает.
|
|||
138
Shurjk
26.01.12
✎
14:52
|
(136) Хочешь сказать что если ты напишешь Where Field = NULL то запрос тебе вернет эту строку, а если напишешь Where Field = 0 то не вернет.
|
|||
139
Shurjk
26.01.12
✎
14:53
|
(137) Я смотрю у местного шута уже и поклонники появились.
|
|||
140
Ненавижу 1С
гуру
26.01.12
✎
14:54
|
(138)
Where Field = NULL -- точно ничего не вернет Where Field = 0 -- если там NULL, тоже не вернет (139) давай без оскорблений личных? и ты не ответил таки на (130)+(136) |
|||
141
Mort
26.01.12
✎
14:56
|
(139) Оскорбления начались, значит слился.
Слился, сиди там молчи, и читай http://www.sql.ru/docs/sql/u_sql/ch15.shtml http://www.flenov.info/books.php?contentid=4 прежде чем позориться. |
|||
142
Starhan
26.01.12
✎
14:57
|
(136)емнип в каких то СУБД ставишь, что поле может иметь значение NULL. И оно ставится если добовляешь строку не указывая значение.
|
|||
143
Sammo
26.01.12
✎
15:01
|
(142) Но поля в таблицах 1с формируются как not null
|
|||
144
Ненавижу 1С
гуру
26.01.12
✎
15:03
|
(142) я в курсе
(143) 1с тут не причем |
|||
145
khimiki
26.01.12
✎
15:03
|
Оксана, на самом деле всё просто про NULL. Понятие NULL значения применяется при работе с реляционными наборами данных. Проблема в том, что при левом или правом соединении довольно часто возникает ситуация, когда строкам из набора данных слева или справа нет соответствия на другой стороне. То есть предикат описан (заголовок таблицы, если по простому), а значений нет. Некоторые разработчики СУРБД так увлекаются NULL значениями, что вообще разрешают из ввод в строки проста так, без всякого соединения. Очень многие учёные в области баз данных считают это крупной ошибкой. Вот, вкратце, вся правда про NULL значения.
Могу рассказать и про НЕОПРЕДЕЛЕНО, но я не уверен, что вы (ты?) всё ещё здесь. |
|||
146
Ненавижу 1С
гуру
26.01.12
✎
15:04
|
(145) значение NULL в 1С может возникнуть и в результате запроса безо всяких JOIN
|
|||
147
khimiki
26.01.12
✎
15:06
|
(146) Я знаю, но здесь я на стороне Дейта и согласен с ним, что это зло.
|
|||
148
Shurjk
26.01.12
✎
15:08
|
(136) Могут попасть но только в том случае если разрешить им туда попадать - но смысла разрешать это тем более для числового поля точно нет.
(141) Великий теоретик? |
|||
149
Ненавижу 1С
гуру
26.01.12
✎
15:08
|
(147) ну про Дейта мы в отдельной ветки (если хочешь заведи) поговорим
|
|||
150
Ненавижу 1С
гуру
26.01.12
✎
15:08
|
(148) ну вот это уже отмазки пошли, откуда ты знаешь постановку задачи?
|
|||
151
Shurjk
26.01.12
✎
15:09
|
(150) Приведи пример задачи в которой это целесообразно?
|
|||
152
wertyu
26.01.12
✎
15:10
|
(133) главный конструктор отказался отвечать на этот вопрос, ссылаясь на коммерческую тайну
|
|||
153
Mort
26.01.12
✎
15:13
|
(151) По второй ссылке пример такой задачи описан, где не стоит ставить Default. Ну не хош читать - умничай дальше, на потеху окружающим.
|
|||
154
Ненавижу 1С
гуру
26.01.12
✎
15:13
|
(151) во-первых, я отвечал на вопрос (121) про возможность - возможность такая есть
во-вторых, числовым полем может быть внешний ключ к другой таблице и если нет соответствия, то туда разумно писать NULL |
|||
155
Shurjk
26.01.12
✎
15:16
|
(153) Про пол что ли? Дебильныый пример, пустую строку еще легче будет чем NULL найти.
|
|||
156
Mort
26.01.12
✎
15:22
|
Медицина тут бессильна.
*Ушел |
|||
157
Starhan
26.01.12
✎
15:23
|
(0)
NULL - отсутствующее значение НЕОПРЕДЕЛЕНО - Это пустое значение неопредленного типа ПустаяСсылка - Это пустое значение определеного ссылочного типа Как я понял, в 1С NULL введено только для поддержки работы с результатами запросов. Так как есть разница. Вообще не сопоставилось значение при соединении таблиц. Или Значение есть, но пока не определились, что там хранить :) |
|||
158
Ненавижу 1С
гуру
26.01.12
✎
15:31
|
(157) не только для этого NULL в 1С, еще раз классический вариант:
ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Артикул), КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) ИЗ Справочник.Номенклатура КАК Номенклатура результаты полей скорее всего будут различные |
|||
159
Ненавижу 1С
гуру
26.01.12
✎
15:32
|
+(158) слово РАЗЛИЧНЫЕ убрать
|
|||
160
Starhan
26.01.12
✎
15:34
|
(159) да различные. Скорей всего артикула нет у групп.
|
|||
161
Serginio1
26.01.12
✎
15:35
|
(24) Нет это не только 1С придумала. В Net есть такое понятие как Nullable типы http://simple-cs.ru/store/csharp/29/
Так число не может быть Null а вот int? может. |
|||
162
Fish
26.01.12
✎
15:35
|
Вечерело, а бабушки всё падали и падали. :))) Не надоело еще?
|
|||
163
Starhan
26.01.12
✎
15:36
|
(159) но смысл то тот же результат запроса.
|
|||
164
Jaffar
26.01.12
✎
15:36
|
(145) "разрешают из ввод в строки проста так, без всякого соединения"
пиривиди... |
|||
165
Ненавижу 1С
гуру
26.01.12
✎
15:37
|
(161) ну да, они "сблизились" с SQL просто, ведь там тоже в ХП и триггерах переменные INT могут иметь значения NULL
но это вообще не то |
|||
166
Ненавижу 1С
гуру
26.01.12
✎
15:37
|
(163) ну если артикул неуникальный, то могут сомневаться некоторые
|
|||
167
Serginio1
26.01.12
✎
15:41
|
(161) Почему не то? Запрос возвращает NULL. Это поле нужно обрабатывать. Смысл тот же, что и в 1С. Вернее как в SQL.
|
|||
168
Ненавижу 1С
гуру
26.01.12
✎
15:43
|
(167) ну я имею ввиду что да, так, как в SQL
но не как в 1С )) пример не в тему я считаю, он подтверждает истинность пути SQL и ложность 1С )) |
|||
169
khimiki
26.01.12
✎
15:46
|
(164) так понятнее? :)
CREATE TABLE EX_USER ( ID INT not null, NAME VARCHAR(255) not null, ACTIVE TINYINT(1) not null, ROLE_ID INT not null, USER_NAME VARCHAR(25) not null, PASSWORD VARCHAR(25) not null ) |
|||
170
Serginio1
26.01.12
✎
15:56
|
(168) Согласен. По уму его нужно обрабатывать как неопределено. И не марать мозги.
Запрос запросом, а данные данными. При этом значениеЗаполнено() для 0 и Null вернет ложь. |
|||
171
Ненавижу 1С
гуру
27.01.12
✎
15:27
|
(147) как разрулить ситуацию со ссылочным внешним ключом незаполненным?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |