Пакет QUEUE

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7326
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Пакет QUEUE

Сообщение Игорь Столяров »

Привет всем ! :)

Возникла непреодолимая потребность передавать в процедуры очереди (QUEUE).
Проблема в том, что много и они разные. И вот здесь какое-то затменье нашло. :(

Можно ли как-то объединить их в какой-то пакет, пул, что бы передавать в процедуру один адрес ?
Что-то вроде GROUP, для типов данных Byte, Long, String и т.д. ?

Заранее спасибо за идеи. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Пакет QUEUE

Сообщение RaFaeL »

Класс можно передавать
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Пакет QUEUE

Сообщение Yufil »

А просто передать очередь через *Queue нельзя? Запись получить через Prop:Record, а поля через Who-where-when и т д
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Пакет QUEUE

Сообщение gopstop2007 »

cmag-2011-11 ( v13n11passqueue )
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Пакет QUEUE

Сообщение kreator »

Вот такая шальная идея.

Код: Выделить всё

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. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7326
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Пакет QUEUE

Сообщение Игорь Столяров »

gopstop2007 писал(а): 28 Ноябрь 2018, 19:08cmag-2011-11 ( v13n11passqueue )
А что-то у меня нет такого … :( По крайне мере в тех комплектах ClaMag что на FTP форума.
Если можно - сбросьте пожалуйста в личку, на e-mail или на FTP … Спасибо !
За теми кто отстал - не возвращаться. (С) Кодекс
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Пакет QUEUE

Сообщение Yufil »

А в чём сущность проблемы? У меня возникала потребность сохранять и восстанавливать данные сессии, состоящей из нескольких групп-очередей-просто переменных. Сессия сохраняется в БД, а потом восстанавливается.
Примерно так

Код: Выделить всё

! Создаём контейнер 
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)
!  Все очереди, группы и так далее будут восстановлены из контейнера          
Работает...
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7326
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Пакет QUEUE

Сообщение Игорь Столяров »

gopstop2007 писал(а): 28 Ноябрь 2018, 19:08cmag-2011-11 ( v13n11passqueue )
Спасибо - я пример получил …
Только я чего-то не понял. Там описан тип очереди и по этому типу эта очередь передаётся в процедуры.
В принципе, то же самое описано и в справке. Передать в процедуру очередь нет никаких проблем.
Или что этот пример вообще демонстрирует ? Описание читал - но там описан процесс, а не смысл действия … :(
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Пакет QUEUE

Сообщение RaFaeL »

Так а чем класс не устраивает?
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Пакет QUEUE

Сообщение Дед Пахом »

RaFaeL писал(а): 29 Ноябрь 2018, 14:48Так а чем класс не устраивает?
или группа?
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7326
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Пакет QUEUE

Сообщение Игорь Столяров »

Дед Пахом писал(а): 29 Ноябрь 2018, 15:10или группа?
А разве очередь может быть в группе ?! :shock:
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Пакет QUEUE

Сообщение kreator »

Игорь Столяров писал(а): 29 Ноябрь 2018, 16:24
Дед Пахом писал(а): 29 Ноябрь 2018, 15:10или группа?
А разве очередь может быть в группе ?! :shock:
А мой пример не воспроизводится?
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Пакет QUEUE

Сообщение Дед Пахом »

Игорь Столяров писал(а): 29 Ноябрь 2018, 16:24А разве очередь может быть в группе ?!
Конечно, как в классе.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7326
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Пакет QUEUE

Сообщение Игорь Столяров »

Дед Пахом писал(а): 29 Ноябрь 2018, 17:19Конечно, как в классе.
Таки да. Спасибо. В группе или примитивном классе можно использовать ССЫЛКУ на очередь.
Но это конечно не очень удобно - нужно динамически создавать NEW() и убивать DISPOSE() очереди … :(
kreator писал(а): 28 Ноябрь 2018, 20:46Компилятор не ругается.
Потому, что с точки зрения синтаксиса - всё OK ! Но на этапе выполнения, очередь должна быть создана NEW() ...
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Пакет QUEUE

Сообщение kreator »

Игорь Столяров писал(а): 30 Ноябрь 2018, 10:45 Но на этапе выполнения, очередь должна быть создана NEW() ...
Естественно!
We are hard at work… for you. :)
Ответить