Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
DO комманда с передачей параметров.
|
|||
|---|---|---|---|
|
#18+
Всем здравствуйте !!! Какой максимальный размер передаваемых параметров в вызываемую процедуру типа Do Label^Routine(P1,P2 ... Pn) ? А если в совокупности, сколько параметров можно передавать и ихний общий размер ? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2010, 11:31 |
|
||
|
DO комманда с передачей параметров.
|
|||
|---|---|---|---|
|
#18+
Valeriu, Если нужно решить задачу передачи неопределенного числа параметров - передавайте деревяшку Do Label^Routine(.p), где p - массив/глобал А так, кажется вот это (можно проверить, исходил из предположения, что программы - те же глобалы): http://docs.intersystems.com/cache20101/csp/docbook/DocBook.UI.Page.cls?KEY=GGBL_structure#GGBL_structure_naming http://docs.intersystems.com/ Determining the Maximum Length of a Subscript Several factors determine the total number of characters that can appear in a reference to a local or global variable. These include: * The length of the global name * The number of subscripts used * Whether each subscript is a number or a string * For string subscripts, the character set encoding used To calculate the size of the reference, use the following guidelines: 1. In the global name: for each character, add 1. 2. In a numeric subscript: for each digit, sign, or decimal point, add 1. 3. In a string subscript: for each character, add 3. (For more information on this, see “A Note on ASCII and Multibyte Characters in Subscript Names.”) 4. For each subscript, add 1. If the sum of these is greater than 511, the subscript may be too long to use as a reference for a local or global variable. Important: The following factors also determine the maximum length of the subscript: * For numeric subscripts, in both Studio and Caché Terminal, and with both local and global variables, a subscript is limited to 309 digits; larger values result in a <MAXNUMBER> error. * For string subscripts in Caché Terminal, with local variables, a subscript name is limited to 251 characters; larger values result in a <SUBSCRIPT> error . A global variable subscript name does not have this limit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2010, 11:53 |
|
||
|
DO комманда с передачей параметров.
|
|||
|---|---|---|---|
|
#18+
исходил из предположения, что программы - те же глобалыЭто не совсем точно (учите матчасть :). Максимальная длина строки программы - 4096 символов. DO(args,...) - не исключение. Это по памяти, а в документации смог найти вот это:Release Notes по Cache 2007Increased Maximum String Length In this release, the maximum length of a Caché string has been increased from 32,767 to 3,641,144 characters. This change is transparent to existing applications. However, those applications that are modified to handle larger strings should consider enabling the EnableLongStrings configuration parameter ... The maximum string size limit applies only to the size of the resulting string. Other size-related limits remain as before. For example, the length of a line of code given to the compiler is still 4096 characters. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2010, 12:10 |
|
||
|
DO комманда с передачей параметров.
|
|||
|---|---|---|---|
|
#18+
Valeriu, Переменное количество аргументов PS: 254 строковых параметра по 32767 символов в каждом передаются нормально (Caché 2010.2 Release ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2010, 13:14 |
|
||
|
DO комманда с передачей параметров.
|
|||
|---|---|---|---|
|
#18+
Вопрос в эту же тему. Может ламерский но все таки. На сайте http://gradvs1.mgateway.com/main/ нашел одну интерестную штуку M/Ware, которую можно применить для разных случаев. (например сокет клиент - M/Ware) Хочу прикрутить к ней функцию Do с передачей параметров. Каким приемом можно пользоваться для того, чтобы одни и теже параметры использовать как ByVal , а в другом случае как ByRef в один вызов Do Label^Routine(P1,P2 ... Pn) ??? По отдельности никаких проблем, все работает. немного кода: Код: plaintext 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. 27. 28. 29. 30. 31. 32. 33. 34. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2010, 12:20 |
|
||
|
DO комманда с передачей параметров.
|
|||
|---|---|---|---|
|
#18+
Read head:tim 1. А если параметр задержится в сетке дольше чем tim? x "New gtmbuild Do"_gtmbuild("record") 2. Хорошо бы после Do поставить пробел. 3. После выхода из xecute его уровень стека утрачивается, и то что было new тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2010, 12:55 |
|
||
|
DO комманда с передачей параметров.
|
|||
|---|---|---|---|
|
#18+
1. А если параметр задержится в сетке дольше чем tim Код: plaintext 1. 2. 3. 4. 5. 6. 2. Хорошо бы после Do поставить пробел. Пробел присутствует перед " label^rounine" в пакете от клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2010, 13:12 |
|
||
|
DO комманда с передачей параметров.
|
|||
|---|---|---|---|
|
#18+
R read:tim e zt "timer" В переменную может быть вынута часть байтов из канала а оставшаяся непрочитанной за tim начнет читаться следующей командой read с неопределенного байта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2010, 13:22 |
|
||
|
DO комманда с передачей параметров.
|
|||
|---|---|---|---|
|
#18+
В принципе, я вижу в M/Ware time вообще не используется ;) ... убираю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2010, 13:46 |
|
||
|
DO комманда с передачей параметров.
|
|||
|---|---|---|---|
|
#18+
Не пинайте сильно и если можно подскажите свое мнение. Что неправильно и что можете посоветовать дополнительно ? Решил так : Код: plaintext 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. 27. 28. 29. 30. 31. 32. 33. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2010, 09:17 |
|
||
|
DO комманда с передачей параметров.
|
|||
|---|---|---|---|
|
#18+
Valeriu, может я что-то упустил, но ради чего все эти сложности? Не проще ли свой сокет-сервер написать? Из опыта работы с сокетами: - чтение только с таймаутом (их обработка меньшее зло, чем зависания); - если протокол обмена выбираете вы, придерживайтесь форматов вида <длина><пакет>, не полагаясь на терминаторы. Прототип "читалки" такой: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2010, 09:57 |
|
||
|
DO комманда с передачей параметров.
|
|||
|---|---|---|---|
|
#18+
Valeriu, может я что-то упустил, но ради чего все эти сложности? Не проще ли свой сокет-сервер написать? Дело в том, что есть у меня свой, но на сайте указанного выше есть это штука M/Ware. Довольно грамотно и интуитивно написана. Вижу, что Rob Tweed прикручивает ее с успехом везде ! http://gradvs1.mgateway.com/main/ Rob Tweed Read my latest blog posting on exploiting Node.js and server-side Javascript for the next generation of super-fast, highly scalable GT.M and Caché based Web/Ajax applications. Она подходит и для меня как API сервер для GT.M, с использованием xnetd сервисом ! Как знаете, ихний GT.M socket не очень стандартен ... Да и приложений куча с использованием MSM-Activate, где я именно в большинстве пользуюсь "золотой" m.DO командой и чтобы компатибельность на всякий случай везде (Cache', MSM, GT.M !!!) ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2010, 10:16 |
|
||
|
DO комманда с передачей параметров.
|
|||
|---|---|---|---|
|
#18+
Valeriu, по-видимому, Rob Tweed не использует timeout при чтении, т.к. сетевой обмен у него происходит вне M-системы, а локальное TCP-взаимодействие он считает надежным. Но ИМХО и локально могут случаться всякие неприятности (переполнения буферов, ошибки программиста и т.д.), поэтому я использую read packet#len:timeout _всегда_, даже локально. Успехов Вам в приручении M/Wire! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2010, 10:40 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=36944784&tid=1557917]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
158ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 490ms |

| 0 / 0 |
