Ir para conteúdo

POWERED BY:

Arquivado

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

allan.web

Error ???

Recommended Posts

Ola pessoal...

Estou fazendo um pesquiza randomica em um bd... porem algumas vezes da um erro... no momento que da esse erro eu queria que ele usasse outra instrução SQL... ja tentei usar on error resume next mas não tive sucesso...

Alguem sabe me explicar como posso fazer isso??...

 

Desde ja agradeço ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

on error resume nextif err.number >1 then outra sql ....end ifmas o lance é fazer nao da erro.... você testar tudo sempre antes....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Gastao.... Sei que o mais certo é deixar sem erro algum... mas ele ocorre muito raramente... e não sei o pq dele... então por isso queria algo do tipo... Só um probleminha... onde eu coloco esse codigo do erro na minha página??.. tentei usar assim... set rs=server.createobject ("adodb.recordset") rs.open "select top 9 * from carros where cod in ("&session("cod")&") order by cod desc", conexdados,3,1on error resume nextif err.number = 80040e14 then rs.open "select top 9 * from carros where status = 'ok' order by cod desc", conexdados,3,1end if....Mas não deu certo... onde é o lugar certo de colocar esse código???.. nunca usei isso antes... Muito obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

ASP [/tr][tr]

on error resume next ' no inicio da pagina

set rs=server.createobject ("adodb.recordset")

 

rs.open "select top 9 * from carros where cod in ("&session("cod")&") order by cod desc", conexdados,3,1

 

 

 

if err.number = "80040e14" then

rs.open "select top 9 * from carros where status = 'ok' order by cod desc", conexdados,3,1

end if

 

[/tr]

tenta assim...

 

pq você usa o where cod in ("&sssssss ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq eu sorteio os codigos, salvo eles em uma session separados por virgula e depois faço a consulta....Vou testar e se der certo ja posto o código inteiro para você me entender melhor....Muito obrigado pela sua ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Gastao...

Ainda não consegui fazer funcionar... é que assim... se o erro não ocorre tudo bem... mas se ele ocorre o servidor fica lento com o DLLHOST.EXE consumindo toda CPU... ai reinicio o serviço www e volta ao normal...

Vou colocar o código todo.. não sei onde posso estar erando....

 '-------- Inicio do Randon --------------------------------  session("cod") = ""      set conexdados = server.createObject ("ADODB.Connection")	conexdados.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("../bd/bd.mdb")      	set rs=server.createobject ("adodb.recordset")    	rs.open "select * from carros where status = 'ok'", conexdados,3,1    while not rs.eofquestoes = questoes & rs("cod")&"|"rs.movenextwendtotal_exibicao = 9 ' total de ítens para perguntarFor i = 0 to total_exibicao  ArrayQuestoes = Split(questoes, "|")  Randomize()  QuestaoSorteada = RND() * UBound(ArrayQuestoes)  cods = ArrayQuestoes(QuestaoSorteada) & ",," 'AQUI APENAS ESTOU FORÇANDO O ERRO...  session("cod") = session("cod") & codsNext    rs.close    conexdados.close    set conexdados = nothing    set rs = nothing'---- Final do Randon ----------------------           set conexdados = server.createObject ("ADODB.Connection")          conexdados.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("../bd/bd.mdb")      set rs=server.createobject ("adodb.recordset")rs.open "select top 9 * from carros where cod in ("&session("cod")&") order by cod desc", conexdados,3,1if err.number = "80040e14" then rs.open "select top 9 * from carros where status = 'ok' order by cod desc", conexdados,3,1end if'Aqui pra baixo tem toda a parte de tabelas e de destruir a conexão.. que acho que nao seja necessário...

Muito obrigado pela ajuda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa parada de consumo de memória eh sua aplicação entrou num loop infinito... pq...

 

tipo assim...

 

se eh fizer um código...

on error resume nextsql = "SELECT * FROM tabela WHERE campo nome='joão'"'---faz de conta q ao campo  "nome" naum existaset tabXXX = bdxxx.execute(sql)Do While not tabXXX.EOF   response.write "x<br>"   tabXXX.MoveNextLoop
como ele vai encontrar erro na variavel tabXXX... pq a consulta foi inválida.. vai sempre ignorar a linha.. ai ele entra no loop e soh sai qdo o script expirar.. ou seu server travar....

 

localização do on error resume next no seu código tem q estar em local correto... se naum você ferra tudo, ok... naum se poe no inicio da pag. onde a pag tem loop.. a naum ser q você tenha 100% de certeza q o loop naum va dar erro... coisa q nesse caso você naum esta tendo, ok....

 

melhor coisa.. eh você entender o erro... se o erro eh na sua SQL... deve ser devido a variavel session("cod")

 

trate ela antes de você jogar ela no sql... e naum use on error resume next.. q isso eh + usado em caso especiais... tipo de comum erro q naum vai ter impacto no server... como upload de imagens... mas tente fazer sem... os resultdos vaum se r melhores ok....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola ska ska... Sei que não é muito usual o on error resume next... mas é que neste caso o erro aconteceu apenas uma vez... ou aparece quando eu forço ele... Se você tiver uma ideia de onde pode estar esse erro ficarei muito grato... pois ja estou com dor de cabeça de tanto pensar nisso... ja tentei de tudo.. mas não faço a minima ideia do que pode estar errado... pois crio uma session com os codigos sorteados... em seguida faço um select com a sessiom... e uma vez apenas retornou um erro.. que não faço ideia de como ele pode ter ocorrido... Muito obrigado pela ajuda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

provavelmente o session naum está armazenando os dados q você vai usar... pelo menos antes de dar o reload da página...melhor coisa... como você armazena o dado numa session... e chama essa session na mesma página.. pq você naum faz assim:armazena o dado em uma session, normal... e na linha de baixo grava ele numa variavel...ai na sql ao invés de usar a session usa a variável... ok...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei e funcionou... vou deixar assim.. tomara que o erro não ocorra novamente... hehehee :D Muito obrigado pela ajuda... Um abraço

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.