USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Que fazer com os codigos excluidos??
ninh@
SÃO PAULO
SP - BRASIL
Postada em 26/10/2005 15:58 hs            
Eu tenho uma tabelano access com campo codigo(chave) tipo numero(inteiro longo). Quando um registro é excluido a sequencia da numeração fica com buracos.  Usualmente, o que é feito para resolver isto? é feito a reposição na hora de incluir novo registro? é feito periodicamente no banco de dados? não devo reutilizar o codigo?
?????????
 
     
Daniel
Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 26/10/2005 16:24 hs            
Eu aconselharia voce a não reutilizar os números, normalmente isso acaba gerando problemas, principalmente se voce tiver outras tabelas relacionadas com esse código.
 
Mas isso é a minha opnião, eu na realidade evito ao máximo a exclusão de registro prefiro normalmente criar um campo flag ativo (sim/não), assim se tiver tabelas relacionadas não perco a informação.
 

dsmn
   
Erico
SALVADOR
BA - BRASIL
Postada em 26/10/2005 16:33 hs            
Depende da sua aplicação.
Existem tabelas dependentes? Permita a exlusão apenas se não existirem registros dependentes (integridade referencial). Com isso vc pode codificar uma rotina que ache o primeiro código disponível para a inclusão. Isso na hora de incluir.
Se for uma tabela de movimentação seria melhor marcar como excluido ou então permitir um lançamento de extorno. Isso faz com que possamos controlar os erros de digitação. Só conhecendo a sua aplicação e a necessidade do cliente para escolher o melhor procedimento.
 

A.Erico S.Peixoto
--------------------
Analista de Sistemas
     
Alfterra
Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 26/10/2005 17:11 hs            
"EU" tenho uma rotina que pega o primeiro numero disponivel na tabela assim nao fica com "buracos", mais como falaram toma cuidado com os relacionementos se existirem.....
   
ninh@
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 26/10/2005 17:23 hs            
não, esta tabela não tem relacionamento. Este é meu primeiro programa e o cliente num colabora, cada hora pede uma coisa diferente...
Alfterra, posso ver esta sua rotina??
eu fiz este codigo, mas como estou iniciando em programação, gostaria de saber como os profissionais fazem...
        Case "incluir"
             Dim cont As Integer
             cn.Close
             With cn
                  .ConnectionString = CNN
                  .Open
             End With
             strSQL = "SELECT * FROM eventuais ORDER BY codigo"
             rsEventuais.Open strSQL, cn, adOpenStatic, adLockOptimistic
             If rsEventuais.RecordCount = 0 Then
                rsEventuais.AddNew
             Else
                rsEventuais.MoveMin
             End If
             cont = 1
             Do While Not rsEventuais.EOF
                If rsEventuais.Fields("codigo").Value <> cont Then
                   rsEventuais.AddNew
                   txtCodigo.Text = cont
                   Exit Do
                End If
                   cont = cont + 1
                   rsEventuais.MoveNext
              Loop
              If cont > rsEventuais.RecordCount Then
                rsEventuais.AddNew
                txtCodigo.Text = cont
              End If
              ProgressBar.Value = 0
              Call Limpar_campos
        Case "incluir"
             Dim i, nRegistros As Integer
             cn.Close
             With cn
                  .ConnectionString = CNN
                  .Open
             End With
             strSQL = "SELECT * FROM eventuais ORDER BY codigo"
             rsEventuais.Open strSQL, cn, adOpenStatic, adLockOptimistic
             If rsEventuais.RecordCount = 0 Then
                rsEventuais.AddNew
             Else
                rsEventuais.MoveMin
             End If
             cont = 1
             Do While Not rsEventuais.EOF
                If rsEventuais.Fields("codigo").Value <> cont Then
                   rsEventuais.AddNew
                   txtCodigo.Text = cont
                   Exit Do
                End If
                   cont = cont + 1
                   rsEventuais.MoveNext
              Loop
              If cont > rsEventuais.RecordCount Then
                rsEventuais.AddNew
                txtCodigo.Text = cont
              End If
              ProgressBar.Value = 0
              Call Limpar_campos
Valeu  pessoal... 
   
Alfterra
Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 26/10/2005 19:41 hs            
eu uso essa rotina pra cadastrar user, com ela é bom pq nao tem perigo de repetir e com isso ocassionar erro,  mais pode perfeitamente ser colocada onde quiser...
 
         Dim IDatual As Integer
                For i = 1 To TbSenha.RecordCount
                     DoEvents
                     IDatual = TbSenha.Fields("ID").Value
                        If i < IDatual Then
                           .TextID.Text = i
                           Exit For
                        Else
                           TbSenha.MoveNext
                        End If
                  Next i
 
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página