Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];

Вниз

Понятие 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 1.07 MB
Время: 0.111 c
3-1156856047
bmp2006
2006-08-29 16:54
2006.10.29
Сложный запрос


2-1160389147
Alex Kryuchkov
2006-10-09 14:19
2006.10.29
Уничтожение родительской формы


2-1160851964
Kostafey
2006-10-14 22:52
2006.10.29
Закрытие окна згружаемого из dll


15-1160057772
ArtemESC
2006-10-05 18:16
2006.10.29
Работа...


2-1160723972
kitsumvi
2006-10-13 11:19
2006.10.29
Проблемы с ShareMem





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский