@servername

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#1
цитата из справки:

Syntax
@ServerName
Return value
serverName
Text. The name of the server containing the current database or the user name if triggered from a local database.



вопрос: почему при событии БД QueryClose эта функция возвращает имя пользователя, хотя БД находится на сервере?

p.s. если @ServerName использовать в качестве компутед текста на форме - возвращает правильное значение.
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#2
Хелп читать надо до конца

Return value
serverName
Text. The name of the server containing the current database or the user name if triggered from a local database.


Проверял! работает как заявлено

Может ты открываешь локальную реплику?
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#3
Хелп читать надо до конца

Return value
serverName
Text. The name of the server containing the current database or the user name if triggered from a local database.


Проверял! работает как заявлено

не спеши с выводами. хелп я спецом болдом выделил чтоб внимание обратить.
как проверял? подробнее... по кнопке у меня тоже работает. проверь на КвериКлозе
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#4
я не спешу. я действительно проверил. создал базу на локали и на сервере.
На локали действительно выдает имя пользователя.
На сервере - имя сервера

проверял и по кнопке и по событию.

В событии писал @Prompt([ok]; @Text( @ServerName ); "" )

хотя можно и просто вот так @Prompt([OK]; "Server name"; @ServerName)
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#5
шо ж тады у меня не работает? :blink:
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#6
проверь, ты точно открываешь базу с сервака?
ну и еще... не знаю.. может такая проблема только у меня... но иногда помогает удаление Cache.NDK
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#7
Вопрос остался отрытым...

Хотя я выкрутился, используя @SetEnvironment(sn;@ServerName) при открытии БД :blink: , всё же интересно почему у NickProstoNick работает, а у меня нет B) ?

p.s. пробовал уже с разных машин
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#8
Ну так используй в CFD-поле.

Кстати, у меня тоже работает нормально.
 

morpheus

скриптописец
07.08.2006
3 915
1
#9
вопрос: почему при событии БД QueryClose эта функция возвращает имя пользователя, хотя БД находится на сервере?
Проверил , у меня именно на КвериКлозе , промпт выдаёт текущего юзера. Почему - пока не могу обьяснить
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#10
Совет!
Создай голую форму и пропиши в КвериКлоз толко одну строку @Prompt([OK]; "Server name"; @ServerName)
Если вернет то что надо - ковыряй логику в рабочей форме. Функция работает правильно... у меня по крайней мере
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#12
А я про форму писал. :p
Но у меня в событии базы тоже правильно работает. Клиент версии 7.0

Предлагаю попробовать @DbName.
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#13
Прошу прощения.
Действительно возвращается имя пользователя. Но можно воспользоваться скриптовой функцией, если код позволяет конечно
и даже изгаляться не придется.. входной параметр функции как раз то что нужно Source.Database.Server
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
2
#14
радует что я не один, есть Morpheus с аналогичным эффектом .... :p

выкрутиться из этой ситуации можно, не в этом дело. интересно почему так отрабатывает.
клиент у меня 7.0.2
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#15
Теперь добился, что через раз появляется то сервер, то моё имя. Забавно. :p