Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Прикол: самый сложный способ увеличить переменную на 1  [new]
step-spb
Member

Откуда: С-Петербург
Сообщений: 19
В некоторых языках добавить единичку достаточно просто:

x++

Теперь возьмем Oracle Forms:

copy(to_char(to_number(name_in('global.app_standard_called_forms')) + 1),
'global.app_standard_called_forms');

Итого: 4 вызова функций для решения элементарной задачи!
14 июн 06, 10:41    [2768604]     Ответить | Цитировать Сообщить модератору
 Re: Прикол: самый сложный способ увеличить переменную на 1  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18339
Примеры не эквивалентны.
14 июн 06, 10:45    [2768618]     Ответить | Цитировать Сообщить модератору
 Re: Прикол: самый сложный способ увеличить переменную на 1  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5928
Усложнять просто, упрощать сложно. (c) ХЗ


:global.app_standard_called_forms := :global.app_standard_called_forms + 1;
14 июн 06, 10:52    [2768651]     Ответить | Цитировать Сообщить модератору
 Re: Прикол: самый сложный способ увеличить переменную на 1  [new]
step-spb
Member

Откуда: С-Петербург
Сообщений: 19
Примеры как раз эквивалентны:

1. В обоих случаях используется фиксированная переменная (т.к. в качестве имени используется константа)

2. Вариант :global... не проходит: этот код взят из pll.

Кстати, код взят из OEBS-а (appcore.pll -> app_standard.when_new_form_instance)
14 июн 06, 11:07    [2768735]     Ответить | Цитировать Сообщить модератору
 Re: Прикол: самый сложный способ увеличить переменную на 1  [new]
FRM-42100
Member

Откуда: UA
Сообщений: 753
Во-первых, примеры не эквивалентны. Объяви в С переменную как строку и попробуй прибавить к ней 1 через ++. Во-вторых, не понимаю что должен этот прикол продемонстрировать. В каком-нибудь Лиспе, например, такая операция может смотреться еще забавней, так и что?
14 июн 06, 11:22    [2768823]     Ответить | Цитировать Сообщить модератору
 Re: Прикол: самый сложный способ увеличить переменную на 1  [new]
Sergey_Evdokimov
Member

Откуда: Moscow
Сообщений: 362
step-spb
Итого: 4 вызова функций для решения элементарной задачи!
Мне в свое время понравилась фишка - чтоб считать текст из ListBox в дельфи, basic и других языках надо написать одну строчку:
var := listBox.text;
В Forms 6 мне пришлось писать функцию перебора - строк на 10 или селектить из базы. Со временем привыкаешь.
ИМХО это всё чтоб враги не догадались
14 июн 06, 11:23    [2768829]     Ответить | Цитировать Сообщить модератору
 Re: Прикол: самый сложный способ увеличить переменную на 1  [new]
step-spb
Member

Откуда: С-Петербург
Сообщений: 19
FRM-42100
Объяви в С переменную как строку и попробуй прибавить к ней 1 через ++.


В том то и дело, что в С я могу объявить глобальную переменную, как целочисленную. А в Forms-ах - нет. Вроде пустячок, а сколько из-за этого гемора ;)

FRM-42100
Во-вторых, не понимаю что должен этот прикол продемонстрировать.


Вообще-то это был просто прикол: столь простое действие таким сложным способом.
14 июн 06, 11:35    [2768912]     Ответить | Цитировать Сообщить модератору
 Re: Прикол: самый сложный способ увеличить переменную на 1  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18339
step-spb
1. В обоих случаях используется фиксированная переменная (т.к. в качестве имени используется константа)

А подумать?...
14 июн 06, 11:47    [2768981]     Ответить | Цитировать Сообщить модератору
 Re: Прикол: самый сложный способ увеличить переменную на 1  [new]
FRM-42100
Member

Откуда: UA
Сообщений: 753
step-spb
В том то и дело, что в С я могу объявить глобальную переменную, как целочисленную. А в Forms-ах - нет.
В общем случае это не так, могу назвать несколько способов объявить целочисленную глобальную переменную в Forms-ах.
step-spb
Вообще-то это был просто прикол: столь простое действие таким сложным способом.
Нет тут никакого прикола вообще. GLOBAL это строка, вот и все. К тому же сравнивать разные монастыри по цвету их уставов странно, как минимум. Из того что в Forms-ах для того что бы натягать записей в блок надо сделать всего лишь Execute_Query, а в C-ях открыть курсор, выделить память и т.д. и т.п. совсем не следует, что выполнение запросов на С это гемор.
14 июн 06, 11:49    [2768989]     Ответить | Цитировать Сообщить модератору
 Re: Прикол: самый сложный способ увеличить переменную на 1  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5928
step-spb
Примеры как раз эквивалентны:
2. Вариант :global... не проходит: этот код взят из pll.


Про PLL я догадался. Иначе зачем name_in и copy?

Однако, если писать DLL с инкементом глобальной переменной, которая объявлена в EXE модуле хотя бы на C, то жизнь мёдом не покажется.

Грубо говоря, x++ на C эквивалентен x := x + 1 на PL/SQL. А про реализацию аналогов name_in и copy на C ты как то скромно умолчал.
14 июн 06, 12:33    [2769246]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить