none
Recordset.Filter = " IN (XXX,XXX,XXX,XXX)" ??? RRS feed

  • Pergunta

  • Boa Tarde Pessoal,

     Uso o .Net 2.0 e queria saber se posso realizar um filtro desta forma.

      Recordset.Filter = " IN (XXX,XXX,XXX,XXX,)"

     Li no Marcoratti q os filtros do ADO são realizadas através de clausulas AND e OR e operadores =,<,>,<=,>=.

    Qual é a melhor forma de realizar a clausula 'IN'?

    Obrigado!

    segunda-feira, 9 de janeiro de 2012 18:13

Respostas

  • Olá PCGSG,

    Esse operador realmente não é aceito no Filtro do Recordset (referência: http://msdn.microsoft.com/en-us/library/ee275540%28v=bts.10%29.aspx)

    Mas, como solução de contorno, vc pode fazer o seguinte:

    string criterio = string.Empty;
    string[] valores = new string[] { "Y", "X", "Z" };
    
    foreach (string valor in valores)
    {
        criterio += "CAMPO = '" + valor + "' OR ";
    }
    
    if (criterio.EndsWith(" OR "))
    {
        criterio = criterio.Substring(0, criterio.Length - 4);
    }
    
    criterio = "(" + criterio + ")";
    
    Recordset.Filter = criterio;
    

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    • Marcado como Resposta PCGSG segunda-feira, 9 de janeiro de 2012 19:10
    segunda-feira, 9 de janeiro de 2012 19:04
    Moderador

Todas as Respostas