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

Tratamento De Erros


Guest Ronaldo

Pergunta

Ola galera queria saber se alguém de vocês sabe fazer um tratamento de erro em ado para que não haja duplicaçao. tipo por exemplo se eu tentar gravar um registro com um numero de codigo já existente, a vai aparecer uma msg do tipo codigo já cadastrado. alguém poderia me ajudar por favor

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Ronaldo,

O que voce poderia fazer é o seguinte..

Faco uma busca pelo codigo que vai ser inserido. ex

sql = "Select * from tabela where codigo = '" & txt_codigo & "'"
if tbl.state = 1 then tbl.close
tbl.open sql, conexao


if tbl.eof = true then
   msgbox ("Registro já existente")
else
   'coloca o codigo aki
endif

Abracos

Link para o comentário
Compartilhar em outros sites

  • 0

A propriedade State retorna o estado do objeto Recordset, podendo retornar os seguintes valores (segue os nomes das constantes e valores, e uma breve explicação de cada uma):

adStateClosed = 0

Retornado quando o objeto está fechado, ou seja, quando não existe uma tabela vinculada ou criada.

adStateOpen = 1

Retornado quando o objeto está aberto, ou seja, quando existe uma tabela vinculada ou criada.

adStateConnecting = 2

Retornado quando o objeto ainda está conectando.

adStateExecuting = 4

Retornado quando o objeto ainda está executando uma operação.

adStateFetching = 8

Retornado quando o objeto ainda está sendo preenchido com os dados.

No exemplo do PiGmEu, ele colocou a seguinte linha:

if tbl.state = 1 then tbl.close
Que também poderia ser:
if tbl.state = adStateOpen then tbl.close

O motivo disso é que ao tentar abrir um recordset que já está aberto, ocorre um erro, portanto primeiro ele verifica se a tabela está aberta e se estiver ele a fecha, antes de tentar abrir novamente o recordset (na linha seguinte).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - PIGMEU -
Isso aí, só que a seguinte linha deve ser modificada...

if tbl.eof = true then
... para:
if tbl.eof = false then

Isso porque só será EOF quando o registro não for encontrado.

ok?

Graymalkin

Ops.. disfarca.. eheh

mal o erro :(

:P

Link para o comentário
Compartilhar em outros sites

  • 0

obrigado pela atençao de vocês, só que eu tipo to usan o controle adodc ai eu coloquei no botao gravar assim:

SQL = "SELECT * FROM cliente WHERE codigo='" & txtBairro & "'"

If Adodc1.Recordset.State = 1 Then

Adodc1.Recordset.Close

Adodc1.Recordset.Open SQL

End If

If Adodc1.Recordset.EOF = False Then

MsgBox "codigo já existe"

Else

Adodc1.Recordset.Update

End If

só que deu erro:r-time 3219 "operaçao solicitada pelo aplicativo não permitida neste contexto". alguém sabe o que eu devo fazer?

Link para o comentário
Compartilhar em outros sites

  • 0

Ronaldo.. esse Adodc1 seria a sua tabela certo? então vamos la:

SQL = "SELECT * FROM cliente WHERE codigo='" & txtBairro & "'"


If Adodc1.Recordset.State = 1 Then Adodc1.Recordset.Close
Adodc1.Recordset.Open sql, cnn, adOpenKeyset 

If Adodc1.Recordset.EOF = False Then
   MsgBox "codigo já existe"
Else
   sql = "UPDATE TABELA SET campo = '" & txt_campo & "' ....... where campo = '" valor & "'"
   conexao.execute sql   
End If

veja se funciona.

abracos

Link para o comentário
Compartilhar em outros sites

  • 0

coloquei assim o codigo e tambem nem funcionou veio de o mesmo erro que te falei

SQL = "SELECT * FROM cliente WHERE codigo='" & txtBairro & "'"

If Adodc1.Recordset.State = 1 Then

Adodc1.Recordset.Close

Adodc1.Recordset.Open SQL, cnn, adOpenKeyset

End If

If Adodc1.Recordset.EOF = False Then

MsgBox "codigo já existe"

Else

SQL = "UPDATE Clientes SET bairro = '" & txtBairro & "' where cliente = '" & txtCliente & "'"

conexao.Execute SQL

End If

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...