MOSTRAR_PROXIMO_REGISTRO_CAMPO
Omar2011, Acciolly, tudo bem.
Vou testar as instruções e depois eu informo o resultado.
Grato.
Vou testar as instruções e depois eu informo o resultado.
Grato.
Só uma pequena correção:
[ô]em general declarations
Imports conexao
[ô]no seu comando de pesquisa
Dim conn as New conexao [ô]essa é a instancia da classe de conexao
Dim dados as [txt-color=#e80000]DataTable = [/txt-color]conn.Pesquisar([Ô]SELECT * FROM TbForn Order By Registro DESC LIMIT 1[Ô])
Dim ProxRegistro As Integer = Convert.toInt16(dados.Rows(0)([Ô]codigo_registro[Ô]).ToString()) + 1 [ô]código_registro na verdade é o campo da tabela
TxtReg.Text = Format$(ProxRegistro.toString(), [Ô]000000[Ô])
Acciolly, tudo bem.
Fiz os testes e notei uma coisa, eu tenho no banco gravados 3 (tres) registros e quando abro o form ele me informa que o proximo registro eh [Ô]000005[Ô] mais deveria ser [Ô]000004[Ô] porque, ainda não conseguir matar a xarada.
Grato,
Fiz os testes e notei uma coisa, eu tenho no banco gravados 3 (tres) registros e quando abro o form ele me informa que o proximo registro eh [Ô]000005[Ô] mais deveria ser [Ô]000004[Ô] porque, ainda não conseguir matar a xarada.
Grato,
Acciolly, tudo bem.
Bom eu contornei o erro assim não sei se vai acarretar outro erro no futuro proximo foi assim;
Grato.
Citação:Fiz os testes e notei uma coisa, eu tenho no banco gravados 3 (tres) registros e quando abro o form ele me informa que o proximo registro eh [Ô]000005[Ô] mais deveria ser [Ô]000004[Ô] porque, ainda não conseguir matar a xarada.
Bom eu contornei o erro assim não sei se vai acarretar outro erro no futuro proximo foi assim;
Private Sub FrmFerrtas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TxtDta.Text = Date.Today
Dim conn As New Conn [ô]essa é a instancia da classe de conexao
Dim dados As DataTable = conn.Pesquisar([Ô]SELECT * FROM TbFerrtas Order By Registro DESC LIMIT 1[Ô])
Dim ProxRegistro As Integer = Convert.ToInt16(dados.Rows(0)([Ô]Registro[Ô]).ToString()) + 1 [ô]código_registro na verdade é o campo da tabela
TxtReg.Text = Format$(ProxRegistro.ToString() + 1 - 1, [Ô]00000[Ô])
End Sub
Grato.
Citação::
Acciolly, tudo bem.
Fiz os testes e notei uma coisa, eu tenho no banco gravados 3 (tres) registros e quando abro o form ele me informa que o proximo registro eh [Ô]000005[Ô] mais deveria ser [Ô]000004[Ô] porque, ainda não conseguir matar a xarada.
Grato,
A xarada é que se seu campo é autonumerico e tiver 4 registros gravados e desses 4 vc apagar o numero 2, o próximo registro vai ser o numero 5 e não o numero 4.
A codificação que vc fez foi simplesmente pegar o ultimo registro do banco e somar o valor do campo [Ô]Registro[Ô] + 1. Se vc quer ter uma sequencia então vc deve fazer uma contagem de quantos registros tem na sua tabela. Tipo assim:
Dim conn as New conexao [ô]essa é a instancia da classe de conexao
Dim dados as DataTable = conn.Pesquisar([Ô]SELECT COUNT(Registro) AS quantidade FROM tbFerrtas[Ô])
Dim ProxRegistro As Integer = Convert.toInt16(dados.Rows(0)([Ô]quantidade[Ô]).ToString()) + 1 [ô]código_registro na verdade é o campo da tabela
TxtReg.Text = Format$(ProxRegistro.toString(), [Ô]000000[Ô])
Obs:
Já que vc tá fazendo isso antes de gravar no banco faça com que sua chava primária não seja autonumérica. e se vc quizer que apareça todos esses zeros antes, ela também não pode ser numérica(coisa que eu normalmente não aconselharia).
Té mais
Isso em uma rede pode gerar um problema monstro.
Cuidado com campo auto incremente, cuidado com outro usuário pegando o mesmo numero de registro, isso é difÃcil mas não impossÃvel, já tive problemas assim.
A uns 10 anos atras sofri muito com isso, encontrei a solução assim:
Uma Tabela só para armazenar o próximo registro, a cada registro inserido acrescenta + 1 (Atenção, isso antes de dar o Commit na transação), esse incremento deve fazer parte da transação.
A tabela onde o registro for inserido deve possuir o campo chave primaria e não permitir duplicidade, isso gera um erro caso outro usuário da rede tentar inserir o mesmo numero, Então o sistema identifica esse erro de duplicidade e acrescenta +1 ao numero , assim o sistema fara um loo ping até achar um numero aceito, ai sim grava o registro atual e esse numero sera o incremento para o próximo registro.
Agora se não for trabalhar em rede, esquece o que escrevei.
Cuidado com campo auto incremente, cuidado com outro usuário pegando o mesmo numero de registro, isso é difÃcil mas não impossÃvel, já tive problemas assim.
A uns 10 anos atras sofri muito com isso, encontrei a solução assim:
Uma Tabela só para armazenar o próximo registro, a cada registro inserido acrescenta + 1 (Atenção, isso antes de dar o Commit na transação), esse incremento deve fazer parte da transação.
A tabela onde o registro for inserido deve possuir o campo chave primaria e não permitir duplicidade, isso gera um erro caso outro usuário da rede tentar inserir o mesmo numero, Então o sistema identifica esse erro de duplicidade e acrescenta +1 ao numero , assim o sistema fara um loo ping até achar um numero aceito, ai sim grava o registro atual e esse numero sera o incremento para o próximo registro.
Agora se não for trabalhar em rede, esquece o que escrevei.
Acciolly,
meu campo não eh numerico e não eh tbem auto incremento e não excluir um numero entre outro numero, o campo eh varchar, agora para explicar o que houve, eu mudei o tipo do campo com uns dois registro lá e depois voltei para varchar aà começou esse erro na soma. Vou fechar o topico porque minha dúvida foi resolvida obrigado amigo.
Nilsontres, eu pretendo sim trabalhar em rede em um futuro proximo e vou atentar para as duas dicas obrigado.
Grato,
meu campo não eh numerico e não eh tbem auto incremento e não excluir um numero entre outro numero, o campo eh varchar, agora para explicar o que houve, eu mudei o tipo do campo com uns dois registro lá e depois voltei para varchar aà começou esse erro na soma. Vou fechar o topico porque minha dúvida foi resolvida obrigado amigo.
Nilsontres, eu pretendo sim trabalhar em rede em um futuro proximo e vou atentar para as duas dicas obrigado.
Grato,
Tópico encerrado , respostas não são mais permitidas