В @iferror добавить Names2.nsf

  • Автор темы oleg7
  • Дата начала
Статус
Закрыто для дальнейших ответов.
O

oleg7

#1
Как в
Код:
@IfError(@DbLookup("":""; @ServerName:"names.nsf";..........
добавить еще одну names2.nsf
пробую @IfError(@DbLookup("":""; @ServerName:"names.nsf":"names2.nsf";.....
срабатывает только по первой names.nsf
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 233
18
#2
@IsError работает только на переменных
нужно писать иначе
L1:=@DbLookup("":""; @ServerName:"names.nsf...
@If(@IsError(L1);...
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#3
т.е. техническая документация нам ни по чем? )))
во-первых, @IfError рекомендую не использовать вообще, т.к. ее устарели в 7-ке, вот так вот, в 6-ке добавили, а в 7-ке уже отказались... вместо нее следует использовать @If(@IsError(...) ...).
во-вторых, если одним запросом к двум базам не обратиться, то следует сделать два последовательных, а результат "сложить" (обработать) необходимым образом.


@IsError работает только на переменных
что за глупости? ;)
 
O

oleg7

#4
то есть надо делать
Код:
L1:=@DbLookup("":""; @ServerName:"names.nsf";.......; 
L2:=@DbLookup("":""; @ServerName:"names2.nsf";.......;
LLL := @IfError(L1:L2; "N/A");
???
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#6
не уверен, что так.
я бы рекомендовал попробовать так:
Код:
L1 := @DbLookup("":""; @ServerName:"names.nsf";.......; )
@If(@IsError(L1); L1 = ""; "");
L2 := @DbLookup("":""; @ServerName:"names2.nsf";.......;)
@If(@IsError(L2); L2 = ""; "");

LLL := @Trim(L1 : L2);
@If(LLL <> ""; "есть хотя бы один ненулевой результат"; "ничего нет")
еще, возможно, следует использовать параметр [FailSilent] у @DbLookup (см справку)
 
Статус
Закрыто для дальнейших ответов.