Estou com um problema aqui que está me fazendo perder muito tempo.
P.S: No SQL SERVER dá tudo certo, mas no oracle acontece o erro a seguir:
Tenho uma página em asp que está validando a senha do usuário através de uma procedure em Oracle.
Se houver algum erro na validação dessa senha, por exemplo, o usuário tenha digitado uma senha com menos de 8 caracteres. Então ele acessa a procedure e verifica que a senha tem menos de 8 caracteres, então retorna erro.
Aqui é a chamada da procedure
sRespostaAux = ValidouSenhaDocente(Csng(txt_numero_matricula),txt_senha) Session("ResultadoError") = sRespostaAux
Dentro da FUNÇÃO ValidouSenhaDocente ele acessa a Procedure(ORACLE) e acontece o erro:
a_APrI_Ly_docente.erro := 'A senha deve ter um mínimo de 8 caracteres.'; RETURN;
A função recebe a mensagem de erro:
ValidouSenhaDocente = cmd("erro")
Nesse momento está assim:
ValidouSenhaDocente = "A senha deve ter um mínimo de 8 caracteres."
sRespostaAux = "A senha deve ter um mínimo de 8 caracteres."
Session("ResultadoError") = "A senha deve ter um mínimo de 8 caracteres."
Agora, popula uma variável de sessão:
If sRespostaAux <> "" Then Session("ResultadoTratamentoSenha") = "NO" Else Session("ResultadoTratamentoSenha") = "OK" End if
Ele entrou no If, então ficou assim:
Session("ResultadoTratamentoSenha") = "NO"
Agora, entra no If, mas não mostra o alert com o erro na tela:
If Session("ResultadoTratamentoSenha") = "NO" Then Response.Write "<script LANGUAGE=JavaScript>" & _ "self.alert('" & Session("ResultadoError") & "');" & _ "self.location.href = 'AltSenha.asp';</SCRIPT>" Response.end End if
Ou seja, era pra aparecer na página, "A senha deve ter um mínimo de 8 caracteres.". Depois ir pra página de alterar a senha
Acontece que não mostra de jeito nenhum o erro e entra normal. Mesmo eu debugando ele entra no If, mas quando dá o response.end não para e se perde.
No SQL tudo isso funciona normal, será que tem algo a ver com o Oracle? O que pode ser? Parece que a variável está recebendo espaço a mais, não sei. Já tentei passar trim, mas não deu certo.
OBS: SE EU COLOCAR O ALERT('ERRO!'), DÁ CERTO. SÓ NÃO DÁ CERTO QUANDO EU QUERO PASSAR VARIÁVEL NO ALERT. SEJA
DE SESSÃO OU NÃO.
Alguém pra ajudar?
Valeu.
Descobri que o erro é justamente na Session("ResultadoError").
Tipo quando eu dou o len(Session("ResultadoError")), me aparece 1023 caracteres.
e na mensagem de erro só são 43:
alguma coisa ta fazendo de errado
pode ser aquele negócio de unicode, asc essas coisas que não manjo.