GARANTIR DESCONTO

Fórum Problema com sistema em rede #265218

13/01/2005

0

Pessoal,

Estou com um problema gde com um sistema feito em D5 c/ Piradox !!!!! , mas nao tenho tempo suficiente para converter para postgresql, pois o projeto ja esta rodando e o cliente precisa que arrume o problema . Depois q eu conseguir minimizar a situacao, vou passar para postgresql sem falta.

mas é o seguinte, nao sei mais que faco ..., tenho 2 Tble Master / Detail, e toda hora fica dando pau ...
Uma hora os usuarios lancam pedidos com o mesmo nro, outra hora, nao inclui o pedido, etc , etc ...

Gostaria de saber como posso baixar um pouco a poeira para resolver no instante ? Seria interessante eu utilizar o Database com o Paradox ? Ajuda o problema em rede ?

Por favor, se puderm me ajudar eu fico muito agradecido ...

Marcel


Scandolara

Scandolara

Responder

Posts

13/01/2005

Diogoalles

o problema de gravar com o mesmo codigo deve ser erro de key violation, ou seja, duplicando a chave primaria, isso?
se for esse o caso, faça q nem eu, utilize o evento BeforePost do componente Table... ai vc faz uma consulta com sql na tabela que está ligada ao table pra ver o ultimo codigo inserido.

qq coisa ajudo vc, ou caso o problema seja outro espicifique melhor !

Diogo


Responder

Gostei + 0

13/01/2005

Scandolara

o problema é o seguinte,

Ja verifique a chve de relacionamento para Master / Detail e esta OK ..., conf do BDE, etc, etc, etc

O problema é o seguinte estou tendo problemas com Inclusao de Pedidos ..., sei q vc falow sobre colocar BeforePost para gerar o nro depois ..., mas o problema e o seguinte o usuario precisa saber o nro do pedido qdo insere o registro.

Eu trabalho com uma tabela de Seq para controlar esses nros e o problema esta ai .. qdo um usuario abre a table, pega o nro para inserir o pedido, e outro user abre ao mesmo tempo, os dois pegam o mesmo nro ...... isso esta me dando uma dor-de-cabeca tremenda e nao sei mais q faco !!!!!!!!!!!

Se vc tiver um ideia pra eu baixar a poeira desse problema eu agradeco. Posi assim q eu respirar, vou mudar a base do sistema (com certeza)

Obr

Marcel


Responder

Gostei + 0

13/01/2005

Scandolara

o problema é o seguinte,

Ja verifique a chve de relacionamento para Master / Detail e esta OK ..., conf do BDE, etc, etc, etc

O problema é o seguinte estou tendo problemas com Inclusao de Pedidos ..., sei q vc falow sobre colocar BeforePost para gerar o nro depois ..., mas o problema e o seguinte o usuario precisa saber o nro do pedido qdo insere o registro.

Eu trabalho com uma tabela de Seq para controlar esses nros e o problema esta ai .. qdo um usuario abre a table, pega o nro para inserir o pedido, e outro user abre ao mesmo tempo, os dois pegam o mesmo nro ...... isso esta me dando uma dor-de-cabeca tremenda e nao sei mais q faco !!!!!!!!!!!

Se vc tiver um ideia pra eu baixar a poeira desse problema eu agradeco. Posi assim q eu respirar, vou mudar a base do sistema (com certeza)

Obr

Marcel


Responder

Gostei + 0

14/01/2005

Hugofab

scandolara,


Já tive este problema e a única forma de resolver que encontrei foi colocar a numeração do pedido com um campo autoincrement. No meu sistema que usa paradox fiz o seguinte como não queria usar o código gerado pelo autoincremente, criei 2 campos, um autoincrement e o outro inteiro, faço o relacionamento dos itens do pedido com o campo autoincrement , e só jogo o nº do pedido verdadeiro no final do processo checando se este nº não foi usado em outro pedido , busco este nº em uma tabela auxiliar que é incrementada a cada pedido gravado.


Espero ter ajudado.


Hugo Fabrício


Responder

Gostei + 0

14/01/2005

Eixox

Um dos princípios dos ´Piradox´ que já é uma velha dica de guerra é com relação a inserção de dados em ambiente de redes; Quando dois usuário tentam inserir um registro ao mesmo tempo, os dois recebem o mesmo número de registro.

Duas coisas podem estar acontecendo:

1 - Quando um post é feito ele deve atualizar a tabela; é sempre recomendável.

2 - A propriedade exclusive deve ser alterada para true quando um usuário tiver acesso aos dados da tabela. Para isso crie uma tabela contendo somente o número de registro do pedido e defina a propriedade exclusive para true.

3 - Quando o usuário acessar a tabela, ele deve verificar se a mesma esta em forma exclusiva, se tiver o sistema entra em loop executando a mesma rotina. Quando a tabela for liberada a propriedade exclusive passa a ser false.

4 - O usuário esperará alguns culhésimos de segundos para receber o número do pedido - eu uso esse procedimento é uma maralhavilha e não dá pau.

Eu acho que você deve mais ou menos seguir o mesmo critério - esse é um dos poucos problemas do piradox.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar