Ir para conteúdo
Fórum Script Brasil
  • 0

Retorno De Erros...


Joaozava

Pergunta

Olá,

Tenho um sistema que acessa o postgresql.

Meu problema é no momento de tratar um erro que venha ocorrer por exemplo em um Insert no banco.

O número retornado para o "Err.Number" na maior parte das vezes são iguais para erros distintos...dessa forma não estou conseguindo personalizar a mesagem retornada para o usuário....

alguém sabe o que ser isso e como posso resolver???

Obrigado!

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Por exemplo:

Vou fazer um Insert no banco, e foi deixado um campo obrigatório em branco, nesse caso o banco retornaria um erro e um número para esse erro.

Outro exemplo:

E quando vou fazer um outro Insert, mas vamos supor que tenho um campo varchar(10) e tentei incluir uma string com 11 caracteres, nesse caso o banco tb retornaria um erro.

Até ai tudo bem, o problema é que são erros diferentes, mas o número do erro retornado é igual!! dry.gif

Entendeu???

Gostaria de saber porque o número do erro retornado é igual sendo que o erro é diferente?? huh.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Por exemplo:

Vou fazer um Insert no banco, e foi deixado um campo obrigatório em branco, nesse caso o banco retornaria um erro e um número para esse erro.

Outro exemplo:

E quando vou fazer um outro Insert, mas vamos supor que tenho um campo varchar(10) e tentei incluir uma string com 11 caracteres, nesse caso o banco tb retornaria um erro.

Até ai tudo bem, o problema é que são erros diferentes, mas o número do erro retornado é igual!!  dry.gif

Entendeu???

Gostaria de saber porque o número do erro retornado é igual sendo que o erro é diferente?? huh.gif

Na verdade, o erro é diferente só por um certo aspecto. Em ambos os casos você está fazendo a mesma operação (ou seja, incluindo um registro, ou, para ser mais exato, executando uma consulta-inserção na tabela). O motivo para o não-sucesso na inserção do registro é que varia, mas o erro continua sendo proveniente do fato de você tentar incluir um registro. Deu pra engolir minha balela? dry.gifbiggrin.gif (Bom, é uma explicação plausível para o fato... rolleyes.gif ).

Falando sério agora, a mensagem retornada por err.Description não é suficiente para o caso?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, é justamente a mensagem retornada para err.Description que eu quero mudar, pois ela vem em ingles e não muito bem explicada.....

eu quero verificar o número do erro e retornar uma mensagem melhor formatada para o usuario, como eu já fazia com o access....

entendeu???

Não teria outra forma de fazer isso???

porque q com o access e SQLServer, por exemplo, não acontece isso???

Valeu!

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0
Bom, é justamente a mensagem retornada para err.Description que eu quero mudar, pois ela vem em ingles e não muito bem explicada.....

eu quero verificar o número do erro e retornar uma mensagem melhor formatada para o usuario, como eu já fazia com o access....

entendeu???

Não teria outra forma de fazer isso???

porque q com o access e SQLServer, por exemplo, não acontece isso???

Valeu!

Abraços.

Qual o banco que você está utilizando?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Não.... sad.gif

Veja as mensagens de erro dos exemplos que citei acima:

1º Erro:

Err.Number = -2147467259

Err.Description = ERROR:  syntax error at or near "," at character 221

2º Erro:

Err.Number = -2147467259

Err.Description = value too long for type character varying(25)

São erros diferentes, mas com o mesmo número..... huh.gif

Valeu

Abraços...

Link para o comentário
Compartilhar em outros sites

  • 0
Não.... sad.gif

Veja as mensagens de erro dos exemplos que citei acima:

1º Erro:

Err.Number = -2147467259

Err.Description = ERROR:  syntax error at or near "," at character 221

2º Erro:

Err.Number = -2147467259

Err.Description = value too long for type character varying(25)

São erros diferentes, mas com o mesmo número..... huh.gif

Valeu

Abraços...

Entendo. Mas, por que você mostraria tais mensagens (mesmo em português) para o usuário? Ou esses foram apenas exemplos? Ou o sistema é tão genérico assim, que permita ao usuário escrever SQLs e não ter limitações nos tamanhos das caixas de textos? unsure.gif

Acho que o ideal seria você pegar as mensagens de erro mais prováveis de acontecer e personalizá-las; qualquer outra, apareceria a original mesmo.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Entendo o que você quis dizer.....

Mas o sistema não é genério ao pondo do usuario criar SQLs e tudo mais biggrin.gif

Esses são apenas dois exemplos.... unsure.gif

Com certeza limitação de tamanho de caixa de texto verificação de campo obrigatorio...etc, etc....eu estou fazendo....

É meu objetivo na verdade é:

Catalogar o maior número de erros possiveis, suas provaveis causas e tb soluções...tudo guardado em uma tabela no db.....

Assim a consulta para mostrar essas informações para o usuario seria pelo número do erro!! dry.gif

Porem, como existem erros com o mesmo número, eu não saberia se a mensagem que seria mostrada ao usuario seria correta sad.gif

Mais uma pergunta:

O número retornado para o err.number depende o banco de dados que esta sendo usado???? ou é um número gerado pelo vb????

uma coisa que me veio agora é se você observar uma relação dos erros do postgre, existe alguns que são alfanumericos

seria por isso então o motivo de tudo isso ou não tem nada a ver??

Erros do PostgreSQL

Obrigado!

Abraços....

Link para o comentário
Compartilhar em outros sites

  • 0

Entendo o que você quis dizer.....

Mas o sistema não é genério ao pondo do usuario criar SQLs e tudo mais biggrin.gif

Esses são apenas dois exemplos.... unsure.gif

Com certeza limitação de tamanho de caixa de texto verificação de campo obrigatorio...etc, etc....eu estou fazendo....

Ah, tá... hehehe biggrin.gif

É meu objetivo na verdade é:

Catalogar o maior número de erros possiveis, suas provaveis causas e tb soluções...tudo guardado em uma tabela no db.....

Assim a consulta para mostrar essas informações para o usuario seria pelo número do erro!!

Porem, como existem erros com o mesmo número, eu não saberia se a mensagem que seria mostrada ao usuario seria correta sad.gif

Entendo.

ais uma pergunta:

O número retornado para o err.number depende o banco de dados que esta sendo usado???? ou é um número gerado pelo vb????

Nem de um, nem de outro. Depende do provedor do banco de dados. Note que você não encontra, nesta listagem de erros do Postgre, os erros dos exemplos que você deu nos posts acima. Ou seja, o próprio provedor já está fazendo o que você quer, porém em inglês.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...