![]() |
![]() |
![]() |
|
Пустые значения | ☑ | ||
---|---|---|---|---|
0
NWsFF
27.03.09
✎
09:05
|
Подскажите пожалуйста, в чем отличие следующих значений
Null Неопределено ПустоеЗначениеТипа("Тип") как они связанны друг с другом, в частности интересует как они хранятся в БД. Спасибо! |
|||
1
Rie
27.03.09
✎
09:07
|
(0) Неужели это v7? :-)
|
|||
2
n2m3m
27.03.09
✎
09:08
|
NULL - это отсутствие значения. С NULL сравнивать нельзя. (NULL = NULL - Ложь, NULL <> NULL - тоже Ложь).
Неопределено - это значение неопределенного типа. Сравнение работает как обычно. |
|||
3
NWsFF
27.03.09
✎
09:08
|
извиняюсь, 8.1 просто первый раз на форуме
|
|||
4
Rie
27.03.09
✎
09:09
|
(0) ПустоеЗначениеТипа - посмотри в общем модуле ОбщегоНазначения
|
|||
5
NWsFF
27.03.09
✎
09:14
|
Rie
Спасиба :) n2m3m Null = Null истина в дебагере(табло) Так если я не задаю значение реквизиту(обьекту) в базе хранится Null или ПустаяСсылка |
|||
6
Valery
27.03.09
✎
09:34
|
1.Null отсутсвие значение в базе данных.
2.Неопределено - пустое значение неопределенного типа 3.ПустоеЗначениеТипа("Тип") - пустое значение определенного типа. (5) будет ответ 3. Реквизит может иметь и нессылочный тип н-р число. |
|||
7
NWsFF
27.03.09
✎
10:01
|
(6)
Спасибо Валерий, вроде все понял. Поэкспериментировал в дебагере. |
|||
8
Ненавижу 1С
гуру
27.03.09
✎
10:05
|
это бред от 1С, достаточно было одного NULL и не тип данных, а ко всем типам литерал добавить
|
|||
9
НЕА123
27.03.09
✎
10:06
|
(7) утверждение в (2) насчет NULL верно для запросов!
в самом языке по другому. |
|||
10
Rie
27.03.09
✎
10:10
|
(8) Различие между NULL и пустыми значениями ощущается при левых соединениях и т.п.
|
|||
11
PR
27.03.09
✎
10:16
|
(0) Читай ИТС
|
|||
12
Ненавижу 1С
гуру
27.03.09
✎
10:20
|
(10) они бы не отличались и запросы легче строились бы
|
|||
13
PR
27.03.09
✎
10:25
|
(8) Бред - это восьмой пост в этой ветке.
Умнее фирмы 1С, напиши свое. |
|||
14
Ненавижу 1С
гуру
27.03.09
✎
10:27
|
(13) знаешь, SQL используется во многих СУБД, в том числе и процедурный SQL
и почти всем хватает только NULL |
|||
15
Ненавижу 1С
гуру
27.03.09
✎
10:28
|
(13) объясни зачем три сущности: NULL, Неопределено, ПустаяСсылка
|
|||
16
hhhh
27.03.09
✎
10:38
|
(15) в SQL тоже пустые ссылки есть
|
|||
17
Ненавижу 1С
гуру
27.03.09
✎
10:39
|
(16) ага, это NULL
|
|||
18
hhhh
27.03.09
✎
10:41
|
(17) почему? пустая строка, пустое число = 0. Разве 0 заменяется NULL-ом.
|
|||
19
PR
27.03.09
✎
10:42
|
(15) NULL - это отсутствие значения вообще, то есть по сути заявление типа "Здесь рыбы нет. И водоема.".
А Неопределено и ПустаяСсылка - это значение есть, но оно пустое. То есть что-то типа "Здесь рыбы нет. Но водоем есть.". |
|||
20
Ненавижу 1С
гуру
27.03.09
✎
10:42
|
(18) нет, но ссылка в SQL это FOREIGN KEY, а он либо NULL либо заполнен действительным ключом (кроме битых)
|
|||
21
Ненавижу 1С
гуру
27.03.09
✎
10:43
|
(19) и что это дает?
|
|||
22
Рэйв
27.03.09
✎
10:43
|
(19)Продолжая аналогию...
Неопределено -- здесь бывают рыбы разных сортов, но сейчас ни одной нет. ПустаяСсылка -- здесь обычно классная селедка(килька/карась), но в данный момент ее всю выловили |
|||
23
PR
27.03.09
✎
10:44
|
(21) Это дает информацию о том, есть ли у нас вообще сущность, в запросе например можно понять, есть ли запись или нет.
|
|||
24
Rie
27.03.09
✎
10:47
|
(21) Тогда уж претензии не к 1С, а к Кодду :-)
У него же и примеры, "что это даёт". Вообще говоря, в теории баз данных есть два взгляда на NULL. У каждого - свои достоинства и недостатки. Спор по этому поводу - попросту holy war. |
|||
25
Ненавижу 1С
гуру
27.03.09
✎
10:48
|
(23) пример
|
|||
26
Ненавижу 1С
гуру
27.03.09
✎
10:48
|
(24) возможно
|
|||
27
hhhh
27.03.09
✎
10:51
|
(20) но это и есть ПустаяСсылка() в 1С. Ты перепутал, увидел одинаковые названия, там NULL и здесь. На самом деле - NULL в 1С - это совсем другое. Оно и к базе-то не имеет отношения, а возникает в результате запроса.
|
|||
28
Ненавижу 1С
гуру
27.03.09
✎
10:54
|
(27) если ты простой запрос к таблице делаешь в 1С то незаполненные это ПустаяСсылка или Неопределено, NULL только в соединениях
если в SQL, то NULL неважно где |
|||
29
Valery
27.03.09
✎
10:57
|
NULL это и есть SQl NULL. Он используеся только для работы базами данных.
Но кроме данных базы, 1С имее свои собственные типы данных. Они имеют свою структуру, свои методы. А SQL не имеет таковых как впрочем и другие СУБД. Они им просто не нужны. Поэтому NULL длЯ СУБД вполне хватает. Неопределено и ПустаяСсылка, это для работы с 1С данными. Чтобы мух с котлетами не мешать |
|||
30
Ненавижу 1С
гуру
27.03.09
✎
11:00
|
Получишь ты NULL или ПустуюСсылку метод все равно работать будет одинаково, так что не убедил
|
|||
31
PR
27.03.09
✎
11:01
|
(25) NULL
Выбрать всех контрагентов с левым соединением по расходным накладным. Контрагент есть, а расходных накладных по нему нет. ПустаяСсылка Выбрать всех контрагентов, у которых основной договор пустой. Поле основной договор есть, но оно пустое. Для NULL недоступны реквизиты, доступные для пустых значений. И NULL в SQL достаточно потому, что там тупо нет ссылок, там исключительно примитивные типы данных. |
|||
32
Ненавижу 1С
гуру
27.03.09
✎
11:06
|
(31) ну я в курсе результате запроса, ну были бы там и там NULL и что?
>>Для NULL недоступны реквизиты, доступные для пустых значений. и чему они равны? тоже ПустаяСсылка = NULL >>И NULL в SQL достаточно потому, что там тупо нет ссылок, там исключительно примитивные типы данных. внешние ключи с примитивным типом можно интерпретировать как ссылки |
|||
33
Ненавижу 1С
гуру
27.03.09
✎
11:28
|
Как то все неубедительно
|
|||
34
PR
27.03.09
✎
11:33
|
(33) Печально.
|
|||
35
Ненавижу 1С
гуру
27.03.09
✎
11:34
|
(34) особенно если посмотреть за рамки 1С
|
|||
36
Rie
27.03.09
✎
11:35
|
(33) См. Дейт, Введение в базы данных, гл. 18.
Там как раз разбирается различие между NULL и UNKNOWN. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |