Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
точечный синтаксис. помогите советом
|
|||
|---|---|---|---|
|
#18+
Имеется два одинаковых класса Class test.CLS1 Extends %Persistent { Property A As %String; Property B As%String; Property C As %String; Property D As%String; } Class test.CLS2 Extends %Persistent { Property A As %String; Property B As%String; Property C As %String; Property D As%String; } Задача: обновить поля класса test.CLS1 полями класса test.CLS2 (поля по списку: A,C,D) пытаюсь сделать так: /// ID1 - ID класса test.CLS1 /// ID2 - ID классаtest.CLS2 /// ListFields - список полей для обновления (поля по списку: A,C,D) ClassMethod UpdateTour(ID1 As %Integer,ID2 As %Integer, ByRef ListFields As %String) As %Status { s status = $$$OK s objBT = ##class(test.CLS1).OpenId(ID1) s objNT = ##class(test.CLS2).%OpenId(ID2) if (objBT="")||(objNT="") q 0 if $l(ListFields,",")>1 { f i=1:1:$l(ListFields,",") { s command = "s objBT."_$p(ListFields,",",i)_" = objNT."_$p(ListFields,",",i) w !,command x command } s status = objBT.%Save() q:$$$ISERR(status) status } q $$$OK } Выдает ошибку: s objBT.A = objNT.A ^ <UNDEFINED>zUpdateTour+16^test.CLS1 *objBT Вопрос: как сделать чтоб такой синтаксис работал? возможно ли вообще это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 16:16 |
|
||
|
точечный синтаксис. помогите советом
|
|||
|---|---|---|---|
|
#18+
У Вас рабочий пример? Код: plaintext 1. 2. 3. Советую обратить внимание на: Using the Cache $ZOBJxxx Intrinsic Functions zobj команды и $zobj функции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 16:48 |
|
||
|
точечный синтаксис. помогите советом
|
|||
|---|---|---|---|
|
#18+
В вашем примере что бы срабатывал XECUTE нужно сделать objBT и objNT public переменными - в описании класса добавить [ PublicList = (objBT, objNT) ] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 17:19 |
|
||
|
точечный синтаксис. помогите советом
|
|||
|---|---|---|---|
|
#18+
Или убрать процедуреблок. Никак не привыкну к этому... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2008, 08:42 |
|
||
|
точечный синтаксис. помогите советом
|
|||
|---|---|---|---|
|
#18+
Процедуреблок - это хорошо. А вот то, что на execute создается новый контекст переменных, где старые не видны, это не ошибка каше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2008, 09:28 |
|
||
|
точечный синтаксис. помогите советом
|
|||
|---|---|---|---|
|
#18+
в каше 2008 странно эту проблему решили, там execute работает, но переменные, задействованные в нем становятся видны глобально Код: plaintext 1. 2. 3. 4. получается вот что Код: plaintext 1. 2. PS. ну а делать я бы стал как посоветовал servit :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2008, 09:38 |
|
||
|
точечный синтаксис. помогите советом
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.Процедуреблок - это хорошо. Не по МСМовски это как-то. От того и путаница как у автора получается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2008, 10:00 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=35463614&tid=1558805]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 478ms |

| 0 / 0 |
