2 Insert

20/12/2003

1

Essa dúvida eu nunca solucionei, alguém poderia me ajudar?

É o seguinte imagine q eu tenho um cadastro de cliente e meu sistema está em rede.
E eu abro o mesmo cadastro em dois pc na rede, e dou o incluir em um, e antes de salvar eu vou de dou o incluir em outro pc. Não dá, ele dá pau. como resolver isso?




Uso o delphi 6 e com Interbase...

obrigado...


Responder

Posts

20/12/2003

Ari

Amigo vou ser honesto com vc coloquei a mesma pergunta neste forum e também não consegui resposta más resolvi o problema da seguinte forma:

com certeza sua aplicação deve ter uma query e 1 Ibtransaction o que vc deve fazer e o seguinte:
- criar uma tabela para controle da sua chave primaria ou seja vc vai ter uma tabela com os campos
sequencial
nome tabela
ultimo Código

no evento on new record da qry vc faz a consulta nesta tabela de controle de chave pega o novo codigo e já dá um Update nela para que quando o proximo cara der um novo registro na mesma tabela ele já pega um novo Código

Agora o mais importante é que vc tenha dois ibtransaction um para o Update da tabela de código e outro para o update da tabela do cadastro
e no componente ibtransaction vc seta a opção readcommit

á basicamente isso

Eu fiquei com minha aplicação parada 15 dias e quando descobri a solução achei ridiculo, por favor se não entendeu o que escrevi, alias sou ruim para caramba para explicar por favor me ligue 11 43924171 ou 11 9558 6161 ai te falo certinho..

espero que possa te ajudar.


Responder

22/12/2003

Thoor Cobain

Olá amigo, consegui arrumar, tipo eu nem tinha percebido q o problema era na duplicação da chave, eu já tinha uma rotina q pega o ultimo codigo e soma mais um. Então fiz com que quando o usuario clica no salvar, ele pesquisa o ultimo cosigo soma mais um e depois salva, aí deu certo.
Valew pela dica!


Responder