我在用Outlook救赎库。
我正在尝试检索Outlook存储的文件夹列表。我只需要符合一些标准的文件夹,只需要它们的名称和那里的
迭代--当使用没有缓存的RDOFolder帐户时,对象非常慢。
因此,我使用了GetAllChildFolders(),并将其组合为RODFolderItems find方法。
http://www.dimastr.com/redemption/RDOFolders.htm
var allFolder = ((RDOFolder2)rootFolder).GetAllChildFolders();
string folderSelect = "SELECT Name, EntryId, DefaultMessageClass FROM FOLDER WHERE \"http://schemas.microsoft.com/mapi/proptag/0x3613001F\" like '%Note%'";
try
{
RDOFolder vFolder = vFolders.Find(folderSelect);
while (vFolder != null)
{
System.Diagnostics.Debug.WriteLine(vFolder.Name);
System.Diagnostics.Debug.WriteLine(vFolder.EntryID);
System.Diagnostics.Debug.WriteLine(vFolder.DefaultMessageClass);
vFolder = vFolders.FindNext();
}
}
catch (Exception ex)
{
//log error here!
}现在我有两个问题了!
1. SQL语法
find 方法中的
SQL查询中指定的属性必须使用Outlook (或RDO)属性名(例如,Subject、Email1Address)
我无法使Outlook或Redemption属性在SQL语句中工作。有人有好榜样吗?
2.性能访问属性
在线文档说明如下。
包括SELECT子句允许Redemption从文件夹层次结构表中预取属性,而不打开该项,从而获得显著的性能增益(参见示例“我希望有一个:-)")。如果稍后访问SELECT子句中未指定的属性,Redemption将打开该项。
如何访问从文件夹层次结构预取的属性?如果我使用RDOFolder.Name,整个文件夹对象将被打开,并且没有多少性能增益。
发布于 2020-02-17 19:43:03
RDOFolders.MAPITable.ExecSQL -它将返回一个ADODB.Recordset对象。https://stackoverflow.com/questions/60259187
复制相似问题