Jump to content


Photo

Muitos Caracteres Na String


  • Faça o login para participar
4 replies to this topic

#1 Xenofonte

Xenofonte

    Turista

  • Usuários
  • 25 posts
  • Sexo:Não informado

Posted 18/08/2009, 17:40

Galera,

tenho uma variável de erro que está vindo de uma procedure:

Session("ResultadoError") = "A senha deve ter um mínimo de 8 caracteres."

ela tem 43 caracteres, mas quando eu faço isso:

Session("ResultadoError") = len(Session("ResultadoError"))

me é retornado 1023 caracteres.

E outra...

quando eu faço a comparação:
strComp(Session("ResultadoError"), "A senha deve ter um mínimo de 8 caracteres.")
me retorna 1 (dizendo que são iguais)


o que é isso?

Tem alguma coisa a ver com unicode, hexadecimal? como resolver isso?

como converto de unicode para hexadecimal, será que dá certo?

alguém sabe?

#2 nvivo

nvivo
  • Visitantes

Posted 19/08/2009, 09:14

tenho uma variável de erro que está vindo de uma procedure:

Session("ResultadoError") = "A senha deve ter um mínimo de 8 caracteres."

ela tem 43 caracteres, mas quando eu faço isso:

Session("ResultadoError") = len(Session("ResultadoError"))

me é retornado 1023 caracteres.


Isso *pode* ter a ver com o tipo de dado no banco. Na maioria dos bancos de dados, um char(50) retorna espaços em branco pra completar o espaço não utilizado. Portanto, mesmo que você use 2 caracteres, ele retorna sempre 50. O varchar já não tem esse comportamento.

quando eu faço a comparação:

strComp(Session("ResultadoError"), "A senha deve ter um mínimo de 8 caracteres.")
me retorna 1 (dizendo que são iguais)


1 não significa que os dois são iguais, e sim que a primeira string é "maior" que a segunda.
Veja a documentação: http://msdn.microsof.....28VS.85).aspx

0 significa que são iguais.

[]'s

#3 Xenofonte

Xenofonte

    Turista

  • Usuários
  • 25 posts
  • Sexo:Não informado

Posted 19/08/2009, 14:34

mas ai como faço? estou usando varchar2 na variavel de erro que esta no banco
ja tentei passar mid na variavel de sessao, mas não dá certo
quando eu coloco o mid na Session("ResultadoError") pegando até o ultimo caractere da string da certo, mas se eu passar 1 caractere a mais já nao da mais certo.

só q nao posso amarrar, pois existem varias mensagens de erro.

nao da certo de jeito nenhum

Bateu uma inspiração aqui e eu consegui ajeitar.

Dentro da própria procedure eu modifiquei a varíavel de saída(erro) de varchar2 para char

e deu certo 0o

Mesmo assim valeu a quem tentou ajudar.

Edição feita por: Xenofonte, 19/08/2009, 11:50.


#4 nvivo

nvivo
  • Visitantes

Posted 19/08/2009, 14:35

Varchar2 é oracle certo? Não deveria ter padding. Nesse caso pode ser alguma coisa do driver que voce ta usando, do ODBC, nao sei.

Mas voce precisa debugar... separa um pouco as coisas.

Se souber usar um debugger, ótimo. Se não souber, Pega a variavel antes de jogar na sessao, ve o tipo, o tamanho, da um response.write em texto puro, ve no fonte se ta vindo espaco ou se nao tá, da um trim(), um cstr... strings são strings, não tem muito segredo.

Pode ser até que tenha algum problema no driver pra causar isso, mas uma vez que o dado chega na sua mao, basta vc pensar um pouco em como tratar ele.

[]'s

#5 Xenofonte

Xenofonte

    Turista

  • Usuários
  • 25 posts
  • Sexo:Não informado

Posted 19/08/2009, 14:39

Nvivo,

o problema era no 'varchar2' quando eu coloquei pra 'char' deu certo.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq