Jump to content
mamotinho

Problema Loop infinito ao criar While de uma consulta

Recommended Posts

Olá, pessoal mais uma vez venho pedi a ajuda de vocês estou com um problema ao roda uma query que montei, eu sou iniciante na area e não tenho muito conhecimento então o codigo que fiz foi parte de meu conhecimento básico. bom o que eu quero resolver nessa query é o seguinte, eu quero consultar uma tabela e nela pega todos os registros com a a data vencida e lista ela dentro do while em seguida retornar dentro desse if o valor da coluna de cada uma exemplo de como fiz e ficou com loop infinito.

 

declare @id int
declare @getdate datetime


select @id = IDCadastrado, @getdate = RegDate from BancoTeste.dbo.MinhaTabela where RegDate < getdate()

while @id is not null
begin
   
   select * from BancoTeste.dbo.MinhaTabela where IDCadastrado = @id
   
	
end

quando eu executo isso ai ele executa infinitamente o valor do primeiro registro repetidamente.

Share this post


Link to post
Share on other sites

no caso em nenhum momento você passa para o id seguinte.

Depois do select * from coloque set @id = @id+1

 

ou tente isso

 

https://advaldomesquitadba.wordpress.com/2013/07/04/while-para-cursores/

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By iguulima
      Ola a todos,
      Estou com uma dúvida e ja tentei de tudo que estão dentro das minhas limitações de conhecimento. Tenho um laço de repetição While sendo executado e quero que uma Variavel seja executada apenas uma vez dentro desse laço. Existe essa possibilidade. Obrigado a todos. Segue o código:

       
      <?php $consult = $row['id']; $sql = "SELECT * FROM upload_data WHERE USER_CODE = '$consult' ORDER BY id ASC"; $resultadoimg = mysql_query($sql); $numero_registros = mysql_num_rows($resultadoimg); while($registrosimg = mysql_fetch_array($resultadoimg)) { ?> <li data-target="#carousel-custom" data-slide-to="0" <?php ele precisa ser executado uma unica vez aqui?>><img src="" alt=""></li> <?php } ?>  
    • By FabianoSouza
      Pessoal, por que essa query com COLLATE  não funciona?
      declare @strPesquisa varchar(30) SET @strPesquisa = 'naicle' SET @sql = 'SELECT ' SET @sql = @sql + 'ML.nome ' SET @sql = @sql + 'FROM ' SET @sql = @sql + 'dbo.minhaTab AS ML ' SET @sql = @sql + ' WHERE ' SET @sql = @sql + ' nome LIKE ' SET @sql = @sql + '''%' + @strPesquisa COLLATE Latin1_General_CI_AI + '%''' EXEC (@sql) Não acusa erro ao rodar.
      Mas não traz os registro porque está gravado como "naiclê" (com acento), o que significa que não está aplicando a COLLATE.
       
      Montando essa mesma query mas da forma tradicional, o COLLATE funciona.
       
      SELECT ML.nome FROM dbo.minhaTab AS ML WHERE nome LIKE '%'+ @strPesquisa COLLATE Latin1_General_CI_AI+'%'  
       
    • By FabianoSouza
      Tenho uma string JSON que recebo da aplicação. Até aqui ok, sem problema.
      Minha procedure faz um select comum numa tab e coloca os dados retornados numa tab temporária. Até aqui também ok. 
       
      O que preciso é:
      Criar um loop que varra a string JSON, recuperando dela os valores selValue  e dataInp de cada objeto, em seguida, verifique se esses valores existem na tabela temporária.
      Se existirem, faça isso, se não existirem, faça aquilo.
      Vamos ao que já tenho construído.
       
      O JSON tem esse esse formato
      SET @json = N'[ {"selValue": "1", "inpValue":"sdsadsa", "dataInp": "2"} , {"selValue": "2", "inpValue":"sjjdsa", "dataInp": "3"} , {"selValue": "3", "inpValue":"sddaod", "dataInp": "2"} , {"selValue": "4", "inpValue":"ssanjsd", "dataInp": "2"} ]'  A tabela temporária possui apenas dois campos do tipo inteiro: idRS e idRSC.
      SELECT RSC.c1 AS idRS, RSC.c2 AS idRSC INTO #tbTemp FROM dbo.minhaTabela AS RSC INNER JOIN dbo.outraTabela AS ML ON ML.id = RSC.c2 ----------------------- idRS idRSC 4 1 5 0 3 2 2 4  
      Agradeço desde já, pessoal.
       
      Valew!
    • By Hamilcar
      Bom dia!
      Peguei um sistema para atualizar para funcionar, o problema é que foi criado uma ligação de tabelas meio louca aqui, vou tentar explicar, tem uma tabela usuários que tem um id, e tem uma outra tabela em que a usuários é ligada e nela pode ter um ou mais usuários, o problema é que foi colocado os ids na mesma linha separados por um caracter, e os usuários se repetem, vou colocar abaixo para exemplificar:
      Tabela Usuarios/id 
                   id1, id2, id3...
       
      Tabela Escala
                  id_escala1_idUser -> id1|id2|id3...
                  id_escala2_idUser -> id1|id2|id3...
       
      Como vou gastar um tempo para refazer novamente o banco de dados, queria fazer funcionar momentaneamente, e gostaria da ajuda para tentar se possível fazer uma consulta que me traga todos os usuarios listados na tabela escala
    • By peterstefan
      Olá, estou com uma query aqui e preciso pegar de 2 campos diferentes os dados diferente de 0,  mais quanto tento no AND ele somente traz um resultado, o OR ele traz um dos campos com o valor 0, teria alguma forma de pegar os dados diferente de 0 dos dois campus?
      preciso pegar o idOrganizador diferente de 0 e o idPiloto diferente de 0 
       
      SELECT * FROM boletos WHERE proc = 0 AND idOrganizador !='0' AND idPiloto ='0';  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.