Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
softwarerPL/SQL в основном повторяет концепции ADA 25-летней давности. И совершенно не собирается повторять концепции одного опасного языка и одного плохого языка. YES ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 09:23 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
модPL/SQL в основном повторяет концепции ADA 25-летней давности. Да, да господин мод. Все давно уже украдено до нас. Лет 30 назад. В том числе новадеи типа жабы и си-шарпа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 11:03 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
softwarer ModelRОракл не лезет в вышестоящий скоуп если нашел имя в текущем, Причем это правильный (необходимый) подход.Ну, здесь сигнатуру учитываем, там не учитываем - язык не поворачивается назвать это полностью логичным подходом. softwarer Иначе возможен следующий вариант: из-за изменения кода в одном месте стал иначе работать код в другом месте. Ну и что? Программа делает ровно что написано - из двух функций выбирает ту, которая подходит по сигнатуре. Другое дело, что шансов на такую переделку алгоритма разрешения имен ИМХО нет никаких с учетом имеющегося задела на PL/SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 11:24 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
LongsvanoЕсли есть время, можете накатать кусочек кода чтобы я это понял? Просто вместо двух блоков сделать три - одна процедура, вторая процедура и вызов. В результате, вставив вторую процедуру (между первой и вызовом) мы ломаем программу там, где предпочитающий подобную "далекую перегрузку" программист рассчитывает, что будет осуществлен вызов правильной процедуры. Я безусловно согласен с тем, что и исходный пример, и этот - плохой стиль программирования. И я всячески предостерегал бы от использования больших по размеру программных блоков со сложной вложенностью и активным использованием внутренних подпрограмм. Но - принята концепция, разрешающая это, так что стоит подстраховаться от наиболее неправильного использования. Повторюсь: эта концепция нравится мне тем, что мы ничего не теряем (сохраняем все те же возможности), но код чуть более защищен от ошибок. Если угодно аналогию - на Java существует неприятная особенность. Представьте себе, что есть классы А и Б, в классе Б определен метод М. Теперь, если другой программист в какой-то момент времени добавит в А метод М, метод Б.М нежданно-негаданно окажется вызываемым вместо А.М в самых неожиданных местах, с понятными последствиями. Для полноты картины, программисты классов А и Б могут не знать друг о друге и не видеть чужих исходников. В С++, если не изменяет память, легко организовать аналогичную проблему. А вот в дельфе - не удастся, при том, что все возможности полиморфизма сохраняются. И я полагаю это весьма удобным и правильным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 12:44 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!!ты с кем разговариваешь думаешь лох лабающий на access разрабатывает модель бд в erwin или отслеживает код !? Интересно, это общий стиль оракловских сисадминов такой? Наблюдение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 12:47 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
авторПросто вместо двух блоков сделать три - одна процедура, вторая процедура и вызов. В результате, вставив вторую процедуру (между первой и вызовом) мы ломаем программу там, где предпочитающий подобную "далекую перегрузку" программист рассчитывает, что будет осуществлен вызов правильной процедуры. Не очень понятно, можно всетаки код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 12:52 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
ModelRНу, здесь сигнатуру учитываем, там не учитываем - язык не поворачивается назвать это полностью логичным подходом. Полагаю, полная логика - вещь, о которой можно рассуждать неограниченно долго. Для меня, если логика не дает новой возможности, но увеличивает вероятность ошибки - либо это не логика, либо нафиг такую логику. Ну и стоит отметить, что не возьмусь сделать глобальной таблицы по всем ЯП, но дельфа, в которой этот вопрос проработан куда лучше, чем в других известных мне компиляторах, поступает так же. Я бы сказал, в языке с автоконверсией типов (в которой, с моей точки зрения, и сосредоточено основное зло языка) хорошо реализовать перегрузку вообще невозможно. А поскольку перегрузка нужна, а от автоконверсии хрен откажешься, разработчикам пришлось искать компромисс. И имхо они неплохо справились. ModelRДругое дело, что шансов на такую переделку алгоритма разрешения имен ИМХО нет никаких с учетом имеющегося задела на PL/SQL. Я бы сказал, в первую очередь нет никаких причин его переделывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 13:22 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
softwarer А вот в дельфе - не удастся, при том, что все возможности полиморфизма сохраняются. И я полагаю это весьма удобным и правильным. Удастся, только варнинг будет. А вот в случае если нельзя определить вызов какой из перегружаемых процедур надо сделать - то будет ошибка. И это на мой взгляд логично Если опять немного вернуться к первоначальной теме - а T-SQLю до таких проблем еще надо дорасти :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 14:20 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
SergSuper softwarer А вот в дельфе - не удастся, при том, что все возможности полиморфизма сохраняются. Удастся, только варнинг будет. Не удастся. Варнинг будет, но смысл его строго противоположен - "я сделал правильно, а если вы вдруг хотите, чтобы сгенерился код под вышеописанный глюк, то укажите явно именно это намерение". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 15:56 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=33768601&tid=1553578]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 355ms |

| 0 / 0 |
