Fórum Dois caixas usando o programa ao Mesmo tempogt;gt;gt;O qu #227492
22/04/2004
0
Tenho um programa em faze de teste em um mercado, e quando dois ou mais caixas usam o programa ao mesmo tempo só a primaeira venda é cadastrada a ultima da erro... Uso Piradox e BDE...
Já tive uma Idéia para resolver o problema mas não sei se é o correto...
Pensei em fazer uma rotina em que quando abrir uma nova venda o programa já salvaria a venda... assim o codigo da venda ja ficaria reservado,... se o outro caixa abrir uma nova venda mesmo que não tenha fechado a venda no no primeiro caixa o codigo seria diferente e o erro não aconteceria....
Me deem uma idéia... O que devo Fazer?
Já tive uma Idéia para resolver o problema mas não sei se é o correto...
Pensei em fazer uma rotina em que quando abrir uma nova venda o programa já salvaria a venda... assim o codigo da venda ja ficaria reservado,... se o outro caixa abrir uma nova venda mesmo que não tenha fechado a venda no no primeiro caixa o codigo seria diferente e o erro não aconteceria....
Me deem uma idéia... O que devo Fazer?
Evan Gois
Curtir tópico
+ 0
Responder
Posts
22/04/2004
Weber
Veja bem, se você está trabalhando com impressora fiscal, cada cupom terá números diferentes já que são impressoras diferentes.
Dessa forma o numero da venda deveria ser o número do cupom mais a identificação da impressora fiscal. Onde a idendificação da impressora fiscal poderia ser C1 para caixa 1, C2 para caixa 2 e assim por diante.
Agora se você realmente quizer seguir uma sequencia, independente do caixa que está salvando no banco de dados faça com que o sistema obtenha o código sequencia exatamente no momento que está salvando e não no momento que está iniciando a venda.
Dessa forma o numero da venda deveria ser o número do cupom mais a identificação da impressora fiscal. Onde a idendificação da impressora fiscal poderia ser C1 para caixa 1, C2 para caixa 2 e assim por diante.
Agora se você realmente quizer seguir uma sequencia, independente do caixa que está salvando no banco de dados faça com que o sistema obtenha o código sequencia exatamente no momento que está salvando e não no momento que está iniciando a venda.
Responder
Gostei + 0
22/04/2004
Macario
Ola programador, beleza?
suponho que voce esteja fazendo da seguinte forma:
e logo em seguida o caixa 2 faz a mesma operação:
agora se os dois caixas confirmarem a operação,
dara o erro ´key violation´.
a solução seria vc ter uma tabela de parametros onde armazenara, o ultimo codigo de todas as tabelas.
exemplo:
espero ter ajudado
suponho que voce esteja fazendo da seguinte forma:
Exemplo Caixa 1:
dm.TbVendas.Last;
// indo ao ultimo registro e supondo que este registro seja de numero 10
iCodVen:= dm.TbVendas.FieldByName(´ID_Venda).asInteger+1;
// valor de iCodVen (11)
dm.TbVendas.Append;
e logo em seguida o caixa 2 faz a mesma operação:
Exemplo Caixa 2:
dm.TbVendas.Last;
// aqui o ultimo codigo continua sendo 10,
iCodVen:= dm.TbVendas.FieldByName(´ID_Venda).asInteger+1;
// valor de iCodVen (11)
dm.TbVendas.Append;
agora se os dois caixas confirmarem a operação,
dara o erro ´key violation´.
a solução seria vc ter uma tabela de parametros onde armazenara, o ultimo codigo de todas as tabelas.
exemplo:
dm.Tbparametos.Last;
// indo ao ultimo registro e supondo que este registro seja de numero 10
iCodVen:= dm.TbParametros.FieldByName(´ID_Venda).asInteger+1;
dm.Tbparametos.Append;
dm.TbParametros.FieldByName(´ID_Venda).asInteger := iCodVen;
dm.Tbparametos.post;
dm.TbVendas.Append;
espero ter ajudado
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)