Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

designmix

Tempo no script

Recommended Posts

bem voce ja revisou seu codigo?

 

tem algum loop infinito?

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera tenho um script que esta me dando timeout .. queria colocar um tempo para começar o proximo while.

 

tem como?

aqui esta o script

 

Call abreConn()
sqlU = "select * From tb_concurso_ranking "
SET RSU = conn.Execute(sqlU)
WHILE NOT RSU.EOF
cd_usuario = RSU("cd_usuario")
	SQLa = "select * FROM tb_concurso_pontuacao where cd_concurso = 3"
	SET RSa = conn.Execute(SQLa)
	WHILE NOT RSa.EOF
		"	
		cd_pontuacao = RSa("cd_pontuacao")
		
		SQL = "Select distinct cd_pergunta FROM tb_concurso_pontuacao where cd_usuario = '" & cd_usuario &"'"
		SET RS = conn.Execute(SQL)
			WHILE NOT RS.EOF
			cd_pergunta = RS("cd_pergunta")
		
				SET RS2 = conn.Execute("Select COUNT(cd_pergunta) AS TOTAL FROM tb_concurso_pontuacao  where cd_pergunta = '" & cd_pergunta & "' And cd_usuario ='"& cd_usuario &"'")
				TOTAL = RS2("TOTAL")
					IF TOTAL > 1 THEN
						SQL3 = "SELECT * FROM tb_concurso_pontuacao  where cd_pergunta = '" & cd_pergunta & "' and cd_usuario = '" & cd_usuario & "'"
						
						SET RS3 = conn.Execute(SQL3)
						 ID = RS3("cd_pontuacao")
						
							SQLd = "delete  from tb_concurso_pontuacao where cd_pontuacao ='" & ID &"' and cd_usuario = '" & cd_usuario & "'"
							SET RS4 = conn.Execute(SQLd)
						
						RS3.Close
						Set RS3 = Nothing
					END IF
				RS2.Close
				SET RS2 = Nothing
		RS.MOVENEXT
		WEND
		RS.Close
		SET RS = Nothing
	
	RSa.MOVENEXT
	WEND
RSU.MOVENEXT
WEND

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao analisei todo codigo porque logo no inicio algo me chamou a atençao

 

voce tem um select dentro do laço de repetição que nao usa nenhum dado deste laço de repetição

 

isso nao faz sentido

 

ASP
sqlU = "select * From tb_concurso_ranking "

SET RSU = conn.Execute(sqlU)

WHILE NOT RSU.EOF

cd_usuario = RSU("cd_usuario")

    SQLa = "select * FROM tb_concurso_pontuacao where cd_concurso = 3"

 

o que voce pretendeu com isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opz postei errado o novo é esse aqui

 

SQLa = "select * FROM tb_concurso_pontuacao where cd_concurso = 3"
	SET RSa = conn.Execute(SQLa)
	WHILE NOT RSa.EOF
		cd_pontuacao = RSa("cd_pontuacao")
		cd_usuario = RSa("cd_usuario")
		SQL = "Select distinct cd_pergunta FROM tb_concurso_pontuacao where cd_usuario = '" & cd_usuario &"'"
		SET RS = conn.Execute(SQL)
			WHILE NOT RS.EOF
			cd_pergunta = RS("cd_pergunta")
		
				SET RS2 = conn.Execute("Select COUNT(cd_pergunta) AS TOTAL FROM tb_concurso_pontuacao  where cd_pergunta = '" & cd_pergunta & "' And cd_usuario ='"& cd_usuario &"'")
				TOTAL = RS2("TOTAL")
					IF TOTAL > 1 THEN
						SQL3 = "SELECT * FROM tb_concurso_pontuacao  where cd_pergunta = '" & cd_pergunta & "' and cd_usuario = '" & cd_usuario & "'"
						
						SET RS3 = conn.Execute(SQL3)
						 ID = RS3("cd_pontuacao")
						
							SQLd = "delete  from tb_concurso_pontuacao where cd_pontuacao ='" & ID &"' and cd_usuario = '" & cd_usuario & "'"
							SET RS4 = conn.Execute(SQLd)
						
						RS3.Close
						Set RS3 = Nothing
					END IF
				RS2.Close
				SET RS2 = Nothing
		RS.MOVENEXT
		WEND
		RS.Close
		SET RS = Nothing
	
	RSa.MOVENEXT
	WEND

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao vi erro de codigo

 

mas me explica a logica para ver se consigo otimizar seu codigo

 

tem um delete ali e uma condição a partir da quantidade de perguntas

 

o que isto significa, o que tem de fazer de fato?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que estou tentando fazer. Tenho uma tabela que tem id, id_usuario , id_pergunta.

 

Quero verificar e o usuario respondeu mais de uma vez a mesma pergunta e deletar o registro que são repetidos.

 

 

Obs: ja arrumei no insert mais preciso limpar os que ja respondeu.

 

 

Tomare que de para entender o que estou entando fazer ?

 

 

grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum

 

entendi mas parece que está fazendo do jeito mais dificil

 

porque em vez disso voce nao faz com que seja proibido responder mais de uma vez?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então como disse antes isso eu ja arrumei... na programação... No insert quando o usuario responde agora preciso limpar os que foram antes de eu arrumar o insert.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah ta

 

entao isso voce so vai fazer uma vez

 

nem precisa fazer uma pagina mais elaborada entao

 

está sempre dando erro de timeout?

 

faça um teste com um unico registro

 

teste a primeira query assim

 

sqlU = "select TOP 1 * From tb_concurso_ranking "

veja se da timeout tambem

Compartilhar este post


Link para o post
Compartilhar em outros sites

é muita iteração, por isso ta dando time out

Compartilhar este post


Link para o post
Compartilhar em outros sites

não precisa fazer select * faça:

ASP
SQLa = "select cd_usuario FROM tb_concurso_pontuacao where cd_concurso = 3"

    SET RSa = conn.Execute(SQLa)

    WHILE NOT RSa.EOF

        'cd_pontuacao = RSa("cd_pontuacao")

        cd_usuario = RSa("cd_usuario")

        SQL = "Select distinct cd_pergunta FROM tb_concurso_pontuacao where cd_usuario = '" & cd_usuario &"'"

        SET RS = conn.Execute(SQL)

            WHILE NOT RS.EOF

            cd_pergunta = RS("cd_pergunta")

       

                SET RS2 = conn.Execute("Select COUNT(cd_pergunta) AS TOTAL FROM tb_concurso_pontuacao  where cd_pergunta = '" & cd_pergunta & "' And cd_usuario ='"& cd_usuario &"'")

                TOTAL = RS2("TOTAL")

                    IF TOTAL > 1 THEN

                        SQL3 = "SELECT cd_pontuacao FROM tb_concurso_pontuacao  where cd_pergunta = '" & cd_pergunta & "' and cd_usuario = '" & cd_usuario & "'"

                       

                        SET RS3 = conn.Execute(SQL3)

                         ID = RS3("cd_pontuacao")

                       

                            SQLd = "delete  from tb_concurso_pontuacao where cd_pontuacao ='" & ID &"' and cd_usuario = '" & cd_usuario & "'"

                            SET RS4 = conn.Execute(SQLd)

                       

                        RS3.Close

                        Set RS3 = Nothing

                    END IF

                RS2.Close

                SET RS2 = Nothing

        RS.MOVENEXT

        WEND

        RS.Close

        SET RS = Nothing

   

    RSa.MOVENEXT

    WEND

 

porém creio que apenas usando instrução direta no sql funciona...com alguns IFs e SubSelects vocÊ consegue rodar sem usar ASP

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.