Usuário com melhor resposta
Recordset.Filter = " IN (XXX,XXX,XXX,XXX)" ???

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!
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
Todas as 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
-
-
O que precisar estamos ai! :)
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.wordpress.com/
Twitter: @ferhenrique -
-
Risco não existe, pois é apenas um conjunto de operadores concatenados.
Quantos valores vc preve?
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.wordpress.com/
Twitter: @ferhenrique -
-
Entendo. Não acredito que dê problemas :)
Chegou a testar esse funcionamento?
É realmente uma brecha não existir o operador IN neste objeto =/
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.wordpress.com/
Twitter: @ferhenrique -