Пакет QUEUE
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7419
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 50 раз
Пакет QUEUE
Привет всем !
Возникла непреодолимая потребность передавать в процедуры очереди (QUEUE).
Проблема в том, что много и они разные. И вот здесь какое-то затменье нашло.
Можно ли как-то объединить их в какой-то пакет, пул, что бы передавать в процедуру один адрес ?
Что-то вроде GROUP, для типов данных Byte, Long, String и т.д. ?
Заранее спасибо за идеи.
Возникла непреодолимая потребность передавать в процедуры очереди (QUEUE).
Проблема в том, что много и они разные. И вот здесь какое-то затменье нашло.
Можно ли как-то объединить их в какой-то пакет, пул, что бы передавать в процедуру один адрес ?
Что-то вроде GROUP, для типов данных Byte, Long, String и т.д. ?
Заранее спасибо за идеи.
За теми кто отстал - не возвращаться. (С) Кодекс
Пакет QUEUE
А просто передать очередь через *Queue нельзя? Запись получить через Prop:Record, а поля через Who-where-when и т д
-
- ✯ Ветеран ✯
- Сообщения: 1704
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Пакет QUEUE
cmag-2011-11 ( v13n11passqueue )
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 5006
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Пакет QUEUE
Вот такая шальная идея.
Компилятор не ругается. А там не знаю.
Код: Выделить всё
GLO:MyQueue QUEUE,TYPE,PRE()
GLO:MyQueueField STRING(20)
END
Код: Выделить всё
LOC:MyGroup GROUP,PRE() !
LOC:MyQueue1 &GLO:MyQueue !
LOC:MyQueue2 &GLO:MyQueue !
END !
Код: Выделить всё
LOC:MyGroup.LOC:MyQueue1.GLO:MyQueueField = 'Куку'
We are hard at work… for you.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7419
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 50 раз
Пакет QUEUE
А что-то у меня нет такого … По крайне мере в тех комплектах ClaMag что на FTP форума.gopstop2007 писал(а): ↑28 Ноябрь 2018, 19:08cmag-2011-11 ( v13n11passqueue )
Если можно - сбросьте пожалуйста в личку, на e-mail или на FTP … Спасибо !
За теми кто отстал - не возвращаться. (С) Кодекс
Пакет QUEUE
А в чём сущность проблемы? У меня возникала потребность сохранять и восстанавливать данные сессии, состоящей из нескольких групп-очередей-просто переменных. Сессия сохраняется в БД, а потом восстанавливается.
Примерно так
Работает...
Примерно так
Код: Выделить всё
! Создаём контейнер
H Class(DumpClass)
End
! Регистрируем очереди, группы - и всё такое.
! Первый параметр - идентификатор, чтобы найти объект в контейнере
H.AddField('SCG',SCN:ScGroup)
H.AddField('SCQ',SCN:GScStep)
H.AddField('HISQ',HISQ:HISQ)
H.AddField('STQ',STQ:Q)
H.AddField('MULTI',GLO:MultiInfo)
H.AddField('UNIAR',Glo:UniarGroup)
H.AddField('SCORM',Glo:ScormGroup)
H.AddField('STACK',Sta:Record)
H.AddField('PLANQ',PlanQ:Group)
H.AddField('SCSTEP',SCN:GScStep)
H.AddField('SCGROUP',SCN:ScGroup)
! А дальше пишем все переменные в контейнер ( Blob-поле Ses:Info )
H.SaveBlob(Ses:Info)
! Access.Session.Update()
! Или, напротив, достаём из контейнера
! Access.Session.Fetch(...)
H.LoadBlob(Ses:Info)
! Все очереди, группы и так далее будут восстановлены из контейнера
- Игорь Столяров
- Ветеран движения
- Сообщения: 7419
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 50 раз
Пакет QUEUE
Спасибо - я пример получил …
Только я чего-то не понял. Там описан тип очереди и по этому типу эта очередь передаётся в процедуры.
В принципе, то же самое описано и в справке. Передать в процедуру очередь нет никаких проблем.
Или что этот пример вообще демонстрирует ? Описание читал - но там описан процесс, а не смысл действия …
За теми кто отстал - не возвращаться. (С) Кодекс
- Дед Пахом
- Старичок
- Сообщения: 3137
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
- Игорь Столяров
- Ветеран движения
- Сообщения: 7419
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 50 раз
-
- ✯ Ветеран ✯
- Сообщения: 5006
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Пакет QUEUE
А мой пример не воспроизводится?
We are hard at work… for you.
- Дед Пахом
- Старичок
- Сообщения: 3137
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
- Игорь Столяров
- Ветеран движения
- Сообщения: 7419
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 50 раз
Пакет QUEUE
Таки да. Спасибо. В группе или примитивном классе можно использовать ССЫЛКУ на очередь.
Но это конечно не очень удобно - нужно динамически создавать NEW() и убивать DISPOSE() очереди …
Потому, что с точки зрения синтаксиса - всё OK ! Но на этапе выполнения, очередь должна быть создана NEW() ...
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 5006
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Пакет QUEUE
Естественно!Игорь Столяров писал(а): ↑30 Ноябрь 2018, 10:45 Но на этапе выполнения, очередь должна быть создана NEW() ...
We are hard at work… for you.