terça-feira, 21 de setembro de 2010

IN

Esse operador é uma daquelas boas invenções que o homem realizou até hoje, tal como a vacina contra gripe, o automóvel, a batatinha chips, a coca-cola, rs.... tirando os exageros, ele é legal mesmo, talvez você não tenha sido apresentado ainda, mas com certeza passará a observá-lo de forma melhor.

Seu objetivo é proporcionar a pesquisa ou acesso a uma coleção de dados, e está normalmente associado a um comando de repetição do tipo for ou for ... each. Meu objetivo aqui não é explicar muito a respeito de coleções, mas entenda o seguinte de forma simplificada, que consiste de uma variável do tipo conjunto de dados, algo similar aos vetores e matrizes, mas sem os limites de quantidades impostas por esses tipos.

Então considerando uma coleção qualquer, de nomes (imagem abaixo), poderíamos utilizar o operador IN para localizar qualquer um dos nomes da coleção em uma tabela de clientes, por exemplo.




Para isso precisaríamos programar algo bem simples como:








Para entender esse operador é simples, basta entender que a informação a ser localizada em (na) coleção localizada à esquerda.  Portanto ClienteNome será localizado (ou não) na &colecao e se isso ocorrer, o seu numero será apresentado.  A variavel  &colecao deve ser do tipo Char(20) marcada como collection. (revisado!)


Existem várias aplicações para isso, mostramos aqui como localizar conjuntos de dados de uma única vez utilizando uma variável coleção, mas é claro que você pode utilizá-lo para ligar, através de pesquisas, duas tabelas distintas desde que tenham alguma coisa em comum, e isso não quer dizer que tenham relacionamentos diretos ou indiretos.  Explicando um pouco melhor isso, um objeto Data Selector pode ser programado para realizar uma determinada consulta a uma tabela, e através do operador IN utilizar o resultado desta pesquisa para filtrar registros no for...each.



Mas isso é assunto para outra ocasião.