|
|
|
Непонятки с IIF и макроподстановкой
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. Почему так ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 10:31 |
|
||
|
Непонятки с IIF и макроподстановкой
|
|||
|---|---|---|---|
|
#18+
?IIF(!EMPTY(lcField),FSIZE(),0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 10:51 |
|
||
|
Непонятки с IIF и макроподстановкой
|
|||
|---|---|---|---|
|
#18+
LEN(&lcField) - после макроподстановки LEN() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 10:52 |
|
||
|
Непонятки с IIF и макроподстановкой
|
|||
|---|---|---|---|
|
#18+
AleksMed?IIF(!EMPTY(lcField),FSIZE(),0) ?IIF(!EMPTY(lcField),FSIZE(lcField),0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 10:55 |
|
||
|
Непонятки с IIF и макроподстановкой
|
|||
|---|---|---|---|
|
#18+
AleksMed AleksMed?IIF(!EMPTY(lcField),FSIZE(),0) ?IIF(!EMPTY(lcField),FSIZE(lcField),0) Это да, работает. Но почему IIF так странно ведет себя ? Ведь по идее если lcField пустое, он должен сразу ноль возвратить, а он почему-то на LEN(&lcField) спотыкается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 11:25 |
|
||
|
Непонятки с IIF и макроподстановкой
|
|||
|---|---|---|---|
|
#18+
Мда, похоже, что есть противоречие с хелпом авторIf lExpression evaluates to True (.T.), eExpression1 is returned and eExpression2 is not evaluated. If lExpression evaluates to False (.F.) or null (.NULL.), eExpression2 is returned and eExpression1 is not evaluated. То бишь если надо вернуть "выражение 1", то "выражение 2" не вычисляется, ан нет всё равно вычисляется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 11:37 |
|
||
|
Непонятки с IIF и макроподстановкой
|
|||
|---|---|---|---|
|
#18+
Программизд 01 AleksMed AleksMed?IIF(!EMPTY(lcField),FSIZE(),0) ?IIF(!EMPTY(lcField),FSIZE(lcField),0) Это да, работает. Но почему IIF так странно ведет себя ? Ведь по идее если lcField пустое, он должен сразу ноль возвратить, а он почему-то на LEN(&lcField) спотыкается. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 11:39 |
|
||
|
Непонятки с IIF и макроподстановкой
|
|||
|---|---|---|---|
|
#18+
Программизд 01 Это да, работает. Но почему IIF так странно ведет себя ? Ведь по идее если lcField пустое, он должен сразу ноль возвратить, а он почему-то на LEN(&lcField) спотыкается. Тебе же уже DmGr ответил. Раскрытие макроподстановки происходит еще ДО собственно выполнения команды. Надо же узнать, что именно требуется выполнить. И, видимо, происходит компиляция команды после раскрытия макроподстановки, но еще ДО выполнения. Если lcField = "f1", то после макроподстановки получим LEN(f1), а если lcField = "", то после макроподстановки имеем LEN(). Длину ЧЕГО надо определить? Вообще ничего не указано в качестве параметра. Вот Fox и ругается на то, что нет параметра там, где он должен быть. Если бы ты написал lcField = [""] то после макроподстановки было бы LEN(""), вот тогда ошибки не было бы. Также не будет ошибки, если заменить макроподстановку на скобки или функцию EVALUATE() Код: plaintext 1. 2. В этом случае нет собственно макроподстановки, а есть некая функция, которая должны быть вычислена для определения параметра команды LEN() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 11:49 |
|
||
|
Непонятки с IIF и макроподстановкой
|
|||
|---|---|---|---|
|
#18+
StasLДальше сам догадаешься, что такое макроподстановка и почему LEN(&lcField) спотыкается? Прочитай еще раз суть вопроса. Внимательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 11:57 |
|
||
|
Непонятки с IIF и макроподстановкой
|
|||
|---|---|---|---|
|
#18+
ВладимирМ[quot Программизд 01] Раскрытие макроподстановки происходит еще ДО собственно выполнения команды. Надо же узнать, что именно требуется выполнить. И, видимо, происходит компиляция команды после раскрытия макроподстановки, но еще ДО выполнения. Понятно, видимо так и есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 11:58 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33832013&tid=1591282]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 539ms |

| 0 / 0 |
