Медленно работает advancedsearch()

bonanza

Добрый день. Делаю скрипт, который выбирает коллекцию писем из почтового ящика не старше определенного дня и ищет отправителей, переставших писать. Для создания выборки использую этот код:
    Dim sFilter As String                                 
    Dim sDate As String, sFormDate As String
    sDate = CStr(Date - iDepth)
    sFormDate = "'" + Mid(sDate, 1, 2) + "/" + Mid(sDate, 4, 2) + "/" + Mid(sDate, 7, 4) + " 12:00 AM'"
    sFilter = Chr(34) + "urn:schemas:httpmail:datereceived" + Chr(34) + " > " + sFormDate
    
    Dim oSearch As Search                              
    Set oSearch = oOutlook.AdvancedSearch(sScope, sFilter, True, "salarier")
Проблема в том, что целевой почтовый ящик лежит на сервере exchange (администраторского доступа к нему нет). На локальном файле данных поиск отрабатывает за секунды, но на целевом ящике втупляет минут на 10 и подвешивает outlook. Вопрос 1. Есть ли другой способ собрать коллекцию писем с удаленного ящика?Дальше обрабатываю результаты поиска многократно обращаясь к mailitem из коллекции с результатом поиска. При работе с целевой папкой скорость этого скрипта тоже на порядок хуже.Вопрос 2. Ускорится ли процедура, если данные из коллекции с результатами поиска утащить в массив? Экспериментировать с целевой папкой лишний раз сложно, так как скрипт делается для другого пользователя, а он, зараза, донельзя занятой.
2 ответа

bonanza

Опытным путем выяснил, что проблема на в advancedsearch().Очень долго выполняется копирование свойств писем. Там в выборку попадает около 2 000 штук, и пока по четыре свойства с каждого. Можно ли разом утащить весь набор свойств объекта? возможно это будет быстрее...


bonanza

Блин, ну неужели ни у кого нет внятных мыслей? Нашел чудесный метод, который кеширует заданный набор свойств объектов:
oResults.SetColumns("ReceivedTime, Subject, Sender")
В мануале он показан именно в таком виде, однако в моем случае компиллятор выдает ошибку "свойство неизвестно". Кто нибудь знает, чего ему надо?