Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.29;
Скачать: CL | DM;

Вниз

Понятие NULL   Найти похожие ветки 

 
Reindeer Moss Eater ©   (2006-10-02 16:23) [320]

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

Как быть-то?!
Ведь пустая строка - это по вашему полноценное значение.
А сколько пушек у самураев? Кто скажет?

/* Пожалуйста! Ради бога! Приколов с подсчетом CRLF не предлагать. */
Пустые строки в чистом виде как элемент сообщения!


 
Тугодум ©   (2006-10-02 16:24) [321]

evvcom ©   (02.10.06 16:09) [308]

Читай [307].

Не видать мне булевых лавров :)


 
evvcom ©   (2006-10-02 16:27) [322]

> [319] pasha_golub ©   (02.10.06 16:20)
> И кажется мне, что это вы знаете. ;-)

Правильно, кажется.
Но и мне кажется, что вы знаете, что все же разница между строкой и числом имеется. ;-)


 
Alx2 ©   (2006-10-02 16:31) [323]

>evvcom ©   (02.10.06 16:27) [322]

Запись числа в виде строки и представление строки (текста) числом можно сделать взаимнооднозначным. Рассматривать, например, все как последовательность байт. То есть как запись некоторого числа, в которой каждая цифра принимает 256 значений . И вся биекция.


 
Тугодум ©   (2006-10-02 16:31) [324]

Reindeer Moss Eater ©   (02.10.06 16:16) [316]

Попробую еще раз. Забудьте int, longint и прочее. Поговорим про матемаитку больших чисел, как тут часто спрашивают на форуме. То есть у нас есть DEC(N), где N-разрядность числа в десятичном предствалении. Такой тип есть во многих СУБД, например Informix. Каждая цифра записывается в BCD формате.
Теперь, что мы имеем? А имеем мы полный аналог CHAR(N). И получается, что  необходимо указывать признак завершения ЧИСЛА, или же хранить где-нибудь длину ЧИСЛА. Абсолютно так же, как и для строк. И вот при такой постановке у нас будет ПУСТОЕ ЧИСЛО, то есть число, длина которого равна нулю либо первый же байт (если речь о BCD) которого оказывается признаком окончания числа.


 
pasha_golub ©   (2006-10-02 16:31) [325]


>
> Reindeer Moss Eater ©   (02.10.06 16:23) [320]

Ясненько. Вы, значит, и отрицательные числа не приемлете? И трансцентдентные? Ведь вы их не сможете изобразить. А уж о комплексных вообще нужно молчать?


 
evvcom ©   (2006-10-02 16:32) [326]

> [321] Тугодум ©   (02.10.06 16:24)
> [307] pasha_golub ©   (02.10.06 16:08)
> увидим, что между строками и представлениями числа нет разницы

Представление числа - не есть само число. В
> [294] Тугодум ©   (02.10.06 16:00)
> Нет никакой разницы между строками и целыми числами.

говорится же о самих числах.
Флейм на 300 с лишним постов уже!


 
pasha_golub ©   (2006-10-02 16:34) [327]


> Но и мне кажется, что вы знаете, что все же разница между
> строкой и числом имеется. ;-)
>

Строка и представление числа. Именно такие термины я использовал.


 
Тугодум ©   (2006-10-02 16:34) [328]

Reindeer Moss Eater ©   (02.10.06 16:23) [320]

Как Вы строки разграничиваете? Или у Вас жестко задана длина в 4 символа (мама и папа). Откуда уверенность, что написано именно папа, а не папарацци?

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


 
pasha_golub ©   (2006-10-02 16:35) [329]


> evvcom ©   (02.10.06 16:32) [326]


>
> Представление числа - не есть само число. В

Само число есть абстракция. И мне было бы интересно как бы мы дисскутировали не прибегая к представлению числа.


 
Тугодум ©   (2006-10-02 16:36) [330]

pasha_golub ©   (02.10.06 16:34) [327]

Когда оппоненты начинают уточнять термины, можно спокойно уходить победителем :)


 
pasha_golub ©   (2006-10-02 16:40) [331]


> Тугодум ©   (02.10.06 16:36) [330]
>
> pasha_golub ©   (02.10.06 16:34) [327]
>
> Когда оппоненты начинают уточнять термины, можно спокойно
> уходить победителем :)
>

Пусть проставляются. ;-)


 
Reindeer Moss Eater ©   (2006-10-02 16:40) [332]

Тугодум ©

Мое сообщение - поток байтов.
И каждое вхождение "мама", "папа" и так далее ....

Что здесь непонятного?
Нет никаких разделителей строк.
И нет никаких парамамарацци!

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


 
Reindeer Moss Eater ©   (2006-10-02 16:43) [333]

Если пустая строка сама по себе такое же полноценное значение как и "мама", то научите меня выделять эти пустые строки в потоке байтов.

ЗЫ Выделять "мама" я уже умею. И "папа" тоже.


 
Тугодум ©   (2006-10-02 16:45) [334]

Reindeer Moss Eater ©   (02.10.06 16:40) [332]

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


 
Alx2 ©   (2006-10-02 16:47) [335]

>Reindeer Moss Eater ©   (02.10.06 16:43)

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

В любой строке есть пустая подстрока. Берешь что угодно, и говоришь, что нашел пустую подстроку. Местоположение ее тоже произвольное. Не ошибешься. Отсюда абсурдность идеи кодировать сообщения с помощью вхождения пустых строк.


 
Reindeer Moss Eater ©   (2006-10-02 16:49) [336]

тугодум, а в чем проблемы?
Я выбрал три полноценных значения, неравные между собой.
"мама" <> "папа" <> ""
Я не придумываю ребусы, я пишу сообщение для того, что бы его поняли.


 
Тугодум ©   (2006-10-02 16:50) [337]

Reindeer Moss Eater ©   (02.10.06 16:49) [336]

см [335]


 
pasha_golub ©   (2006-10-02 16:52) [338]


> Reindeer Moss Eater ©   (02.10.06 16:49) [336]

Я утверждаю, что путая строка должна отображаться как "<EMPTY STRING>". Теперь, я думаю в штабе будет полегче.


 
Gero ©   (2006-10-02 16:54) [339]

> [333] Reindeer Moss Eater ©   (02.10.06 16:43)


> Выделять "мама" я уже умею. И "папа" тоже.

Как, если не секрет?


 
Reindeer Moss Eater ©   (2006-10-02 16:59) [340]

Я утверждаю, что путая строка должна отображаться как "<EMPTY STRING>". Теперь, я думаю в штабе будет полегче.

Штабу будет легче.
Только информация о пушках была передана не пустыми строками, а строками "Empty_string"
И эти строки не обладают свойствами пустых строк.

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

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


 
Reindeer Moss Eater ©   (2006-10-02 17:01) [341]

> Выделять "мама" я уже умею. И "папа" тоже.

Как, если не секрет?


За этим секретом (если он нужен всерьез) сходи в местный FAQ.


 
Тугодум ©   (2006-10-02 17:03) [342]

Reindeer Moss Eater ©   (02.10.06 16:59) [340]

Конечно, пустая строка особенная. Только вот непонятно, на каком основании ее свойства обязаны быть одинаковыми с NULL. Для чисел есть например плюс бесконечность, минус бесконечность, not a number, пустое число. Это всё NULLы по Вашей ораклиной логике? Или только NaN?


 
Gero ©   (2006-10-02 17:04) [343]

> [341] Reindeer Moss Eater ©   (02.10.06 17:01)

Нет, не нужен, благодарю.


 
Reindeer Moss Eater ©   (2006-10-02 17:07) [344]

Только вот непонятно, на каком основании ее свойства обязаны быть одинаковыми с NULL.

А кто этого требовал?
Пальцем покажи.
:)


 
Тугодум ©   (2006-10-02 17:08) [345]

Reindeer Moss Eater ©   (02.10.06 17:07) [344]

А кто этого требовал?
Пальцем покажи.


А это не Вы про олицетворение и правомерность кричали? :)


 
Reindeer Moss Eater ©   (2006-10-02 17:12) [346]

А это не Вы про олицетворение и правомерность кричали? :)
И что там в крике моем было про обязанность свойств быть одинаковыми?
Ссылку на пост и номер строки.

>Конечно, пустая строка особенная.
Вот поэтому Оракл и решил, что она адекватно отражает сущность нула.


 
Тугодум ©   (2006-10-02 17:27) [347]

Reindeer Moss Eater ©   (02.10.06 17:12) [346]

Понятно. Спасибо за дискуссию.


 
evvcom ©   (2006-10-03 08:59) [348]

> [323] Alx2 ©   (02.10.06 16:31)
> можно сделать

Мы говорим о том, что можно или о том, что есть?
Для процессора вообще нет никакой разницы, что выполнять, и как выполнять. Ему можно скормить хоть код, хоть данные, он это проглотит (может где-нить зависнет :)) Разница есть для нас, т.к. мы ожидаем какого-то правильного результата, и разница есть для компилятора, т.к. он написан таким образом, чтобы обезопасить нас от самих себя. Поэтому придумали различные типы данных, правила работы с ними и пр. Потому даже между Byte, Word и DWord есть разница, не говоря уж о каких-то числах и строках.

> [327] pasha_golub ©   (02.10.06 16:34)

Да, да, я об этом упомянул в [326], но защищать-то кинулся в [309] что?


 
Alx2 ©   (2006-10-03 16:39) [349]

>evvcom ©   (03.10.06 08:59) [348]

>Мы говорим о том, что можно или о том, что есть?

О том, что есть.

>не говоря уж о каких-то числах и строках.

Ты можешь абстракцию отличать от ее интерпретации? НЕТ разницы между строками и числами. Есть разные способы их интерпретировать.

PS
Криптоалгоритмами не пользовался? Найди в DES отличие между строкой и числом. Напротив, в алгоритме Лемпеля-Зива данные рассматриваются как строка.


 
Тугодум ©   (2006-10-06 13:16) [350]

А все-таки Oracle must die.

Он позволяет вставить пустую строку. Через CHR(0). И даже возвращает эту самую строку, если написать SELECT * FROM mytable WHERE myfield = CHR(0)

Теперь в EJB нужно анализировать с какой СУБД имеем дело, и заменять "" на CHR(0). Ну не бред ли?


 
Sergey13 ©   (2006-10-06 13:23) [351]

> [350] Тугодум ©   (06.10.06 13:16)

Наверное теперь начнутся массовые самоубийства ораклоидов, деинсталяции миллионов серверов и судебные иски к Ларри.
8-)


 
k2 ©   (2006-10-06 13:45) [352]

Тугодум ©   (06.10.06 13:16) [350]
если руки отрезать птице,
если ноги отрезать тоже,
эта птица умрет со скуки
потому што вставлять не сможет
:) навеяло
против массовиков-затейников хорошо административные меры помогают :)


 
Тугодум ©   (2006-10-06 14:25) [353]

k2 ©   (06.10.06 13:45) [352]

Вы о чем? Объясняю подробнее. Есть система. Есть БД, с которой она работает на уровне INSERT-UPDATE-DELETE-SELECT, то есть всё в рамках ANSISQL. Из-за перехода на Oracle теперь придется ее переписывать.
Это не массовики-затейники, это затейники-производители СУБД. Решили, понимаешь, 0.0001% времени и места сэкономить при работе с varchar и сhar.
"Поубивав бы" (c)


 
Sergey13 ©   (2006-10-06 14:32) [354]

> [353] Тугодум ©   (06.10.06 14:25)
> Есть система.
И она вставляет пустые строки через CHR(0)?


 
k2 ©   (2006-10-06 14:36) [355]

Тугодум ©   (06.10.06 14:25) [353]
я о том же, што и Сергей, только неудачно выразилась


 
Игорь Шевченко ©   (2006-10-06 14:36) [356]

Тугодум ©   (06.10.06 14:25) [353]


> Из-за перехода на Oracle теперь придется ее переписывать


Тебе радоваться надо - без работы не останешься.


 
Тугодум ©   (2006-10-06 15:05) [357]

Sergey13 ©   (06.10.06 14:32) [354]

Нет, она вставляла NULL и "", а потом извлекала их обратно. Теперь извлекать обратно не получается, точнее, извлекаются 2 NULL вместо NULL и ""


 
Игорь Шевченко ©   (2006-10-06 15:07) [358]

Тугодум ©   (06.10.06 15:05) [357]

А можно узнать, что за задача была, где требовалось NULL от пустой строки отличать и зачем ?


 
Тугодум ©   (2006-10-06 15:10) [359]

Игорь Шевченко ©   (06.10.06 15:07) [358]

Нет, нельзя.


 
pasha_golub ©   (2006-10-06 15:18) [360]


> Тугодум ©   (06.10.06 15:10) [359]
>
> Игорь Шевченко ©   (06.10.06 15:07) [358]
>
> Нет, нельзя.
>

А мне можно? ;-) Я свой. :0) Не Ораклоид. :)

Кстати, оффтопный вопрос. enterprisedb.com  - сайт EnterpriseDB, которая себя позиционирует как Оракло-совместимая. Кто-то из ораклоидов пробовал? Какие впечатления?

ЗЫ ;) Как там дела с NULL обстоят?



Страницы: 1 2 3 4 5 6 7 8 9 
10 вся ветка

Текущий архив: 2006.10.29;
Скачать: CL | DM;

Наверх




Память: 1.09 MB
Время: 0.085 c
2-1160727006
horse
2006-10-13 12:10
2006.10.29
System error code 1400. Недопустимый дескриптор окна.


1-1158676217
Express
2006-09-19 18:30
2006.10.29
MDI-дочерная форма из библиотеки


2-1160559680
Alex_C
2006-10-11 13:41
2006.10.29
Как отловить событие WM_PAINT для компонента формы?


2-1160992971
vegarulez
2006-10-16 14:02
2006.10.29
Народ, подскажите компоненту для обмена по протоколу HTTPS.


2-1160662054
novill
2006-10-12 18:07
2006.10.29
Почему TFileStream.size показывает 0 если файл отрывается