Определим переменную qinfos как коллекцию
Определим переменную qinfos как коллекцию MSMQQueueInfo:
Dim qinfos As MSMQQueueInfos
и выполним поиск по метке очереди:
Set qinfos = query.LookupQueue(Label:=strQueLbl)
Вернемся на начало коллекции:
qinfos.Reset
Получим первый из результатов:
Dim qinfo As MSMQQueueInfo
Set qinfo = qinfos.Next
Если по нашему запросу очередей не найдено, выдаем соответствующее предупреждение:
If qinfo Is Nothing Then
MsgBox “Очереди с лэйблом “ & strQueLbl & “ не найдено”
в противном случае возвращаем указатель на первую из подходящих очередей:
Else
Set FindQueOnLabel = qinfo
End If
End Function
Теперь мы можем очень просто решить задачу удаления очереди с известной меткой:
Sub DeleteMQPublQue(strQueLbl As String)
FindQueOnLabel(strQueLbl).Delete
End Sub
В рассматриваемом приложении каждая глобальная очередь обозначалась своей меткой, отличной от меток других глобальных очередей. Возникает вопрос: что делать, если несколько очередей имеют совпадающие метки (такое в принципе возможно). Ответ простой — надо проводить поиск по свойству (например, GUID) или комбинации свойств, уникально определяющих очередь. Набор параметров метода LookupQueue объекта MSMQQuery позволяет это сделать. Кстати, из текста примера с функцией FindQueOnLabel очевидно вытекает, как обработать не одну, а целую группу очередей, обладающих каким-то общим признаком. Для этого нужно слегка изменить вышеприведенный фрагмент кода, чтобы операции выполнялись не над первой очередью из результатов запроса, а над всей коллекцией. Предположим, по какой-то причине нам настолько неприятны очереди c Type ID= {BBD97DE0-CB4F-11CF-8E62-00AA006B4F2F}, что мы хотим их удалять всякий раз перед началом работы программы. Нет ничего проще — давайте вставим в обработку события Form_OnLoad (или UserDocument_Initialize и т.п.) следующий код:
Dim query As New MSMQQuery
Dim qinfos As MSMQQueueInfos
Set qinfos = query.LookupQueue(ServiceTypeGuid:=”{BBD97DE0-CB4F-11CF-8E62-0AA006B4F2F}”)
qinfos.Reset
Dim qinfo As MSMQQueueInfo
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий