CODIGO AUTO-INCREMENTO NOVATO

USUARIO.EXCLUIDOS 15/08/2007 11:31:17
#230998
olá, Rodrigo
eu não tinha pensando em multi usuários a principio, eu tinha pensado somente em 1 usuario mesmo...mas migrando para uma um ambiente varios usuario o sistema teria limitações... vc teria alguma dica para que trabalhe de uma maneira diferente. pq da maneira que o meu esta hj o cliente tem que digitar o codigo... ai em uma utilização mais prolongada digamos que tenha 150 registros de cliente no banco de dados, como ele vai saber qual esta vago ou não? ele teria ficar procurando...? era essa minha preucupação entende ser algo dinamico...eu agradeço pela atenção grande abraço
RODRIGOMARCHESE 15/08/2007 11:47:34
#231001
Se você não quiser alterar o colocar o auto-incremento no bd tem duas opções:

1) Colocar um botão NOVO para o usuário clicar, fazer o que o JILNEY sugeriu, indo no bd e dar um SELECT MAX(COD) FROM TABELA e colocar na caixa de texto qual o ultimo codigo + 1

2) Fazer o que a apção 1 faz antes da sua rotina que salva no bd, sem que o usuário se incomode com isso. Se a caixa de texto do códito for = 0 ou "" então você pega qual pe o proximo número, senão é atuzlização

USUARIO.EXCLUIDOS 15/08/2007 12:26:34
#231007
Kaupoa, eu utilizo uma adaptação de uma dica que o Julio Batist escreveu, onde ele ensina a criar numero sequencial para base de dados.

Criando Sequence com SQL Server

Você pode adaptar para sua base de dados (Access), creio eu.

Bom, o que fiz de diferente foi criar uma tabela auxiliar, chamada número vago, pois se um usuário gerar o código e desistir de incluir esse sequencial será "quebrado", então guardo os códigos não utilizados nessa tabela, e quanto abro um forme verifique primeiro se existe número vago, se tiver pego, mostro em um TextBox e Deleto dessa tabela auxiliar, se não tiver gero um novo sequencial (o número que está no banco + 1).

obs.: para pegar o número na tabela numerovago, eu utilizo um select com ordenação crescente, pegando sempre o menor disponível.

Essa adaptação tem me atendido na boa, e pode ser utilizada em modo Multiusuário.

VB6MASTER 15/08/2007 18:25:52
#231100
Muito bem. Tendo-se em vista um sistema multi-usuário, num sistema utilizando-se ADO (sem controle - ADODC) e Access com autonumeração.
Pode-se utilizar a rotina que sugeri acima, para pegar o último código inserido no seu banco de dados, assim que executar o programa, no evento Form1_Activate.
Faça uma função, num módulo .bas, para gravação do NOVO registro, tipo assim:
Public Function fGrava_Busca()  'OK
'grava e busca o último registro
'Tabela Codigo -> Trimestre, Ano, Grupo e Ocorrencia (Cod - fornecido pelo BD)
With DataEnv
cSQL = "INSERT INTO Codigo (Trimestre, Ano, Grupo, SubGrupo, Ocorrencia) VALUES (" & tpDados.vTrim & ", " & _
tpDados.vAno & ", '" & tpDados.vGrupo & "', '" & tpDados.vGrCod & "', '" & tpDados.vOcorrencia & "')"
'comando para gravação
.ConectaBD.Execute cSQL, , adCmdText
'COMANDO PARA PEGAR O VLR. DO COD
.rsCodigo.Open ("SELECT @@IDENTITY")
'Colocando o valor do Código em uma variável Publica
tpDados.vCod = .rsCodigo(0)
'Fechando sua Base de Dados
.rsCodigo.Close
End With
End Function

Depois disso, vc pode colocar o valor dessa variável onde quizer (textBox, Label, ...). Particularmente prefiro num Label, pq ninguém poderá alterá-lo.
E ai KAUPOA, ficou mais claro agora?
USUARIO.EXCLUIDOS 16/08/2007 09:35:07
#231135
ai pessoal, muito obrigado pelas dicas, eu vou testalar e ler atentamente o que vc's me passaram, muito obrigado a todos, grande abraços
USUARIO.EXCLUIDOS 16/08/2007 09:51:37
#231137
Pesquisando um pouco mais, também achei esse artigo, que também pode colaborar com esse tópico:

Programação Padronizada I

Programação Padronizada II
USUARIO.EXCLUIDOS 16/08/2007 17:05:03
#231224
ai Piolho,
muito obrigado pela dica, eu ainda nao li, mas pelo que eu estava olhando bem rapidamente, parece bem interesante...grande abraço
USUARIO.EXCLUIDOS 16/08/2007 18:28:16
#231247

Bom..nesse caso..proponho o seguinte..

Qdo o usuário clica no Incluir, ja acha o código e já o insere no banco...somente o código.

qdo a pessoa for salvar o registro, ele primeiro se posiciona no código q ele incluiu qdo clicou no Incluir e fazer como que se fosse, a edição do registro!! entendeu a idéia.

assim n terá problema de 2 usuários colocarem o mesmo código!!

boa sorte
USUARIO.EXCLUIDOS 17/08/2007 13:24:20
#231387
Entendi sim,
mas eu tenho um problema muito grande ainda...não conheço muito a ferramento e como fazer o que vc me propos

se vc puder me ajudar a me dar uma ideia de como fazer isso eu agradeço


grande abraço
Página 2 de 2 [19 registro(s)]
Tópico encerrado , respostas não são mais permitidas