|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
Добрый день ! Вчера пробовал запустить некоторые свои приложения, которые работают исправно как в MSM, GT.M и в Cache 5.0 с использованием MSM Activate В первом случае если НЕ 1, на клиенте получаю: "Здесь возвращаем ошибку...no password" Если 1 - тогда получаю исправно 50 строк в переменную Ret А вот что получаю в Cache 2015.1 ... Код: plaintext
В чем ошибка , моя или это зависит все таки от версии ?Код теста COS: Код: plaintext 1. 2. 3. 4.
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 09:03 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
ValeriuВ чем ошибка , моя или это зависит все таки от версии ? Похоже требуется использование функции...Как вариант сделать так Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 09:09 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
krvsa, Я пробовал вчера - так работает . Вопросов Нет. Вопрос другой - почему НЕСТАНДАРТНО ? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 09:13 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
krvsa,Так работает Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 09:17 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
Valeriu , Поскольку Вы возвращаете сразу несколько значений, то очевидно, что это уже не функция, а процедура, параметры которой нужно передавать не по значению, а по ссылке. Сделал пример на VBScript (ибо он встроен в Windows) и VisM: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Результат: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 10:19 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
ValeriuВопрос другой - почему НЕСТАНДАРТНО ? Тут я не советчик... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 13:01 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
На передачу параметров, судя по всему, Valeriu не жалуется, а жалуется на то, что начиная с какой-то (?) версии Cache, метод M.Do начал вызывать процедуры как $$-функции. Я основательно забыл MSM-API, поэтому не помню: может есть какой-то флаг, который управляет поведением M.Do? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 13:15 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
servit, Правильно Вы говорите. Есть два варианта (два флага) 1. Передать по ссылке как у меня в первом примере (в принципе все передается по ссылке) Т.е. как бы первый параметр передается по значению, но в нем можно получить обратно новое значение. 2. Передать по ссылке и возврат всех параметров + одного параметра по Q как во втором примере Я правда не пробовал поведение в других ранних релизов... Но. В чем отличие вызова в Cache 5.0 и Cache 2015.1 ? В Cache 5.0 работает этот код, в Cache 2015.1 нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 14:08 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
ValeriuНо. В чем отличие вызова в Cache 5.0 и Cache 2015.1 ? В Cache 5.0 работает этот код, в Cache 2015.1 нет. Argumentless QUIT Command Error Reporting Change Caché 2015.1 Upgrade Checklist ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 14:23 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
Примерно так по идеи работает. Код немножко придется изменить Код: plaintext 1. 2. 3. 4. 5.
i Rec'=1 s Er="Здесь возвращаем ошибку...- "_Rec q на q:Rec'=1 Er="Здесь возвращаем ошибку...- "_Rec ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 14:57 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
ValeriuКод немножко придется изменитьНо только не так, поскольку q Er="..." вернёт 1(TRUE) и никак не поменяет Er ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 15:13 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
servit, Поспешил Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 15:19 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
servit Argumentless QUIT Command Error Reporting Change Caché 2015.1 Upgrade Checklist Изменился лишь формат ошибки в $zerror, но сама ошибка возникала и в более старых версиях. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 16:03 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
Valeriu , Покажите пример с возвратом сразу двух значений. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 16:14 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
servit, Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 17:03 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
Чтоб конкретно смотреть, в Cache 2015 можно включить API так: %SYS>d ^APIMGR Note: MSM-Activate can be configured from SYSGEN now MSM-Activate Management Utility V4.4.0/Cache Config 1 Select APIMGR Option: 1 - Enable Remote MSM-Activate connections 2 - Disable Remote MSM-Activate connections 3 - List Current Servers 4 - Terminate MSM-Activate Server 5 - Configure MSM-Activate Username/Passwords 6 - Configure Security 7 - Configure a different Server Select Option: 1 Known port for MSM-Activate Server <2222>: MSM-Activate Server started on port 2222 MSM-Activate Management Utility V4.4.0/Cache Config 1 Select APIMGR Option: 1 - Enable Remote MSM-Activate connections 2 - Disable Remote MSM-Activate connections 3 - List Current Servers 4 - Terminate MSM-Activate Server 5 - Configure MSM-Activate Username/Passwords 6 - Configure Security 7 - Configure a different Server Select Option: ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2016, 17:09 |
|
Не стандартно работает рутина
|
|||
---|---|---|---|
#18+
ValeriuЧтоб конкретно смотреть, в Cache 2015 можно включить API так:Спасибо, помню: 13620163 , клиентскую часть только забыли приложить: 13620745 . Без неё ведь никак.servit Valeriu , Покажите пример с возвратом сразу двух значений.Я спросил это потому, что на VBS это не работает, хотя согласно документации - должно. ActCOM.pdf Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
In this example, scratch contains “The result is 11”, and param contains 11 . By default, Visual Basic sends all parameters to ActiveX controls or COM objects by reference, if possible. To avoid sending param by reference, enclose it in parentheses. In Visual Basic, this ensures that the parameter is treated as an expression: Код: vbnet 1.
________________________________________________ Alexey MaslovИзменился лишь формат ошибки в $zerror, но сама ошибка возникала и в более старых версиях.Действительно, при вызове функции, у которой забыли вернуть значение, раньше (стр. 105)Цитата из документации v5.0.178.3.2 Functions 8.3.2.4 Return Value If you specify a QUIT command without an expression, Caché issues an error.возникала ошибка Код: plaintext
теперь Код: plaintext
Тем не менее на версии 2010.1 следующий пример отрабатывает без ошибок: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
^testh Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 09:03 |
|
|
start [/forum/topic.php?fid=39&msg=39286189&tid=1556439]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 279ms |
total: | 419ms |
0 / 0 |