Artigo: 310207 - Última revisão: quinta-feira, 29 de Novembro de 2007 - Revisão: 3.3

Como utilizar ADO e o fornecedor de OLE DB do Exchange 2000 para procurar itens numa pasta utilizando o Visual C#

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
atenção ADO and ADO MD não foram totalmente testados num ambiente de Microsoft .NET Framework. Podem provocar problemas intermitentes, especialmente nas aplicações baseadas em serviços ou nas aplicações multithread. As técnicas que são discutidas neste artigo só devem ser utilizadas como uma medida temporária durante a migração para ADO.NET. Só deverá utilizar estas técnicas depois realizados concluída testar para se certificar que estão sem problemas de compatibilidade. Problemas causados por utilizar ADO ou ADO MD desta forma não são suportados. Para mais informações, consulte o seguinte artigo na base de dados de conhecimento da Microsoft:
840667   (http://support.microsoft.com/kb/840667/ ) É apresentada erros inesperados quando utilizar o ADO and ADO MD numa aplicação do .NET Framework
Expandir tudo | Reduzir tudo

Sumário

Este artigo descreve como utilizar o ActiveX Data Objects (ADO) e o fornecedor de Microsoft Exchange 2000 Server OLE DB para procurar itens numa pasta utilizando o Microsoft Visual C# .NET ou Microsoft Visual C# 2005.

Mais Informação

  1. Inicie o Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005.
  2. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
  3. Na lista de tipos do Visual C# Projects , clique em Consola de aplicação . Por predefinição, o ficheiro Class1.cs é criado.

    Nota No Microsoft Visual C# 2005, clique em Visual C# . Por predefinição, o ficheiro Program.cs é criado.
  4. Adicione uma referência à Microsoft ActiveX Data Objects 2.5 Library. Para o fazer, siga estes passos:
    1. No menu projecto , clique em Add Reference .
    2. Clique no separador COM , localize Microsoft ActiveX Data Objects 2.5 Library e, em seguida, clique em Seleccionar .

      Nota Microsoft Visual C# 2005, não é necessário clicar em Seleccionar .
    3. Na caixa de diálogo Adicionar referências , clique em OK .
    4. Se for pedido para gerar wrappers para as bibliotecas que seleccionou, clique em Sim .
  5. Na janela de código, substitua o código com o seguinte:
    using System;
    
    namespace Samples
    {
    	class Class1
    	{
    		static void Main(string[] args)
    		{
    			try 
    			{
    			ADODB.Connection oCn = new ADODB.Connection();
    			ADODB.Recordset oRs = new ADODB.Recordset();
    			
    
    			ADODB.Fields oFields;
    			ADODB.Field oField;
    
                            // TODO: Replace with your folder's URL.
    			string sFdUrl = "http://ExchServer/Exchange/UserAlias/Inbox";
    			
    			oCn.Provider = "exoledb.datasource";
    			oCn.Open(sFdUrl, "", "", -1);  
    
    			if(oCn.State == 1)
    			{
    				Console.WriteLine("Good Connection");
    			}
    			else
    			{
    				Console.WriteLine("Bad Connection");
    			}
    
    
    			string strSql;
    			strSql = "";
    			strSql = "select ";
    			strSql = strSql + " \"urn:schemas:mailheader:content-class\"";
    			strSql = strSql + ", \"DAV:href\" ";
    			strSql = strSql + ", \"DAV:displayname\"";
    			strSql = strSql + " from scope ('shallow traversal of " + "\"";
    			strSql = strSql + sFdUrl + "\"') ";
    			strSql = strSql + " WHERE \"DAV:ishidden\" = false";
    			strSql = strSql + " AND \"DAV:isfolder\" = false";
    
    
    			oRs.Open(strSql, oCn,
    				ADODB.CursorTypeEnum.adOpenStatic,
    				ADODB.LockTypeEnum.adLockUnspecified, 1);
    
    
    			if(oRs.State == 1)
    			{
    				Console.WriteLine("Recordset Opened");
    			}
    			else
    			{
    				Console.WriteLine("Recordset Failed Opened");
    			}
    
    			oRs.MoveFirst();
    			while(!oRs.EOF)
    			{
    				oFields = oRs.Fields;
                                        oField = oFields["DAV:href"];
    				Console.WriteLine(oField.Value);
    
    				oField = oFields["DAV:displayname"];
    				Console.WriteLine(oField.Value);
    
    				oRs.MoveNext();  
    				                             Console.WriteLine("--------------------------");
    
    			}
    
    			oRs.Close();
    			oCn.Close();
    
    			oCn = null;
    			oRs = null;
    			oFields = null;
    			oField = null;
    			}
    			catch (Exception e)
    			{
    				Console.WriteLine("{0} Exception caught.", e);
    			}			
    		}
            }
    }
    					
  6. Procurar a cadeia de texto TODO no código e, em seguida, modifique o código para o seu ambiente.
  7. Prima a tecla F5 para criar e executar o programa.

A informação contida neste artigo aplica-se a:
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft Exchange Server 2000 Service Pack 1
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005
Palavras-chave: 
kbmt kbhowto kbmsg kbxml kbcode KB310207 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 310207  (http://support.microsoft.com/kb/310207/en-us/ )