VLOG

Ex-jogador de Sonic que virou programador

Excepcional loucura por loops.Hoje notei algo totalmente incrível, inacreditável, insano. Nessas horas eu vejo como é importante ficar no pé de quem está aprendendo, exatamente para evitar esse tipo de situação totalmente sem noção.
Imaginem uma tela onde temos um grid com diversas linhas contendo notas fiscais. Preciso fazer três verificações antes de permitir que seja gerado o arquivo texto para enviar ao site da prefeitura, imagino que até aqui tudo bem. Ao invés de efetuar um loop no grid, pegar as chaves dos registros que preciso verificar, efetuar apenas mais um loop em um select e efetuar as três verificações que preciso, encontrei coisa muito mais complexa e melhor.
A pessoa fez um loop no grid e para cada linha desse grid faremos um select, verificamos, deixamos aberto e vamos para a próxima linha. Depois de rodar todas as linhas necessárias, façamos outro loop, igual, para verificar outro dado. Não contente, no terceiro loop, encontro um loop no grid para pegar as chaves e em seguida um outro para verificar outro campo rodando todos os registros de um select.
Cheguei a analisar umas 5 vezes porque não acreditava no que estava vendo. Achei que não havia compreendido o que quiseram fazer ali, mas depois percebi que realmente havia entendido e que realmente estava totalmente sem sentido. Ainda, na última verificação, pensei que estava vendo erroneamente as tabelas, que se tratavam de 3 tabelas diferentes e por isso fizeram 3 selects, mas não, eram todos da tabela de notas fiscais.

Quer dizer, tenho a tabela na seguinte estrutura:

NF
- PKey
- CNPJ/CPF
- CFOP
- Endereço

Ao invés de fazer um único select:

SELECT CNPJ/CPF, CFOP, Endereço FROM NF WHERE PKey IN (1, 2, 3, 4)

É bem mais simples e prazeroso fazer:

SELECT CNPJ/CPF FROM NF WHERE PKey IN (1, 2, 3, 4)
SELECT CFOP FROM NF WHERE PKey IN (1, 2, 3, 4)
SELECT Endereço FROM NF WHERE PKey IN (1, 2, 3, 4)

Se existissem somente profissionais assim, eu já teria desistido antes de começar...

Nenhum comentário:

Postar um comentário