NUMERO DO CUPOM

MOREIRA 01/03/2010 17:25:11
#335703
Hoje é dia de perguntar..........


Bom, uso essa rotina abaixo para gerar o Numero da Venda. testei em duas maquinas em rede.. e o número duplicou..
Alguma Sugestão pra nao acontecer isso...


Um Computador Servidor outro Cliente...

Base de Dados Mysql..



Private Sub Gera_Cupom()
Sql = [Ô]Select Max(NUM_CUPOM) As Cupom From Tbl_Vendas Where Num_Caixa = [ô][Ô] & Numero_Caixa & [Ô][ô] And Num_caixa = [ô][Ô] & Numero_Caixa & [Ô][ô][Ô]
Set rst = Conexao.Execute(Sql)
If IsNumeric(rst!cupom) = False Then
LblNum_Cupom.Caption = 1
Else
LblNum_Cupom.Caption = Format(rst!cupom + 1, [Ô]000000[Ô])

End If
Numero_Cupom = LblNum_Cupom.Caption

End Sub



TECLA 01/03/2010 17:28:17
#335705
Porque não utiliza um campo como AUTO_INCREMENT?
Exemplo:
CREATE TABLE animals (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
);
MOREIRA 01/03/2010 17:31:38
#335707
Já Existe um Campo Chamado ID Auto_INCREMENT.....
TECLA 01/03/2010 20:16:20
#335726
Então, veja se isso te ajuda.
mysql> SELECT LAST_INSERT_ID();
MOREIRA 01/03/2010 20:55:17
#335729
Tecla, eu confesso, nao endendi..

mysql> SELECT LAST_INSERT_ID();


assim esta a estrutura da tabela


DAVERSON 01/03/2010 22:17:12
#335732
Vou postar mas vc ta me devendo.... rssss
aqui no meu nao da erro nunca...

Function autoSalesNo()

RS.Open [Ô]SELECT max(NroVenda) as numero FROM vendas[Ô], Con

If RS![numero] > 0 Then
numero = RS![numero] + 1
Else
numero = 1
End If
RS.Close
txtInvoiceNo.Text = Format(numero, [Ô]000000[Ô]) [ô]mostra na tela
End Function
DEZ2 02/03/2010 10:11:32
#335750
Abra uma Transação, no momento de salvar o registro, ou no momento de buscar os dados, assim não há erros, uma maquina deve esperar a outra terminar o processamento.
MOREIRA 02/03/2010 11:04:09
#335757
DAVERSON, dessa forma q vc postou não tem problema de duplicar o numero do cupom ?, vou ter q usar em 3 pdv[ô]s....
DAVERSON 02/03/2010 11:12:14
#335758
Citação:

:
DAVERSON, dessa forma q vc postou não tem problema de duplicar o numero do cupom ?, vou ter q usar em 3 pdv[ô]s....



acredito que nao... mesmo assim crie uma rotina que verifique novamente na hora de gravar... se houve mudança ele pegue o nro maior acho que fica bem simples

MOREIRA 02/03/2010 14:09:08
#335784
DAVERSON, dessa forma continua duplicando...

RS.Open [Ô]SELECT max(NroVenda) as numero FROM vendas[Ô], Con

If RS![numero] > 0 Then
numero = RS![numero] + 1
Else
numero = 1
End If
RS.Close
txtInvoiceNo.Text = Format(numero, [Ô]000000[Ô]) [ô]mostra na tela
End Function

alguem tem uma sugestão dessa rotina, o número do cupom nao seja reptido na base de dados, estou usando 3 PDV[ô]S...

DAVERSON 02/03/2010 17:03:54
#335807
vc deve executar a rotina no inicio do processo... onde ele ira fazer a verificação do numero do cupon... blz

ai feito o processo de venda quando vc for salvar a venda vc faz uma nova chamada pra ver se este nro mudou...
se mudou vc atualiza o numero do cupom e salva com o numero atual
i

Página 1 de 3 [28 registro(s)]
Tópico encerrado , respostas não são mais permitidas