GARANTIR DESCONTO

Fórum Autoincremento via SQL #183657

23/09/2003

0

Olá, tenho um sistema de uma pequena rede de 5 micros meio antigos p100/586 133Mhz que usam paradox e preciso portar o banco de dados para access, porém estou com problema para fazer o autoincremento pois sei que existe o campo autonumeração no access mas eu perderia a numeração correta.

Para tentar arrumar isto estou puxando o valor do índice via SQL:
SELECT MAX(CODIGO) FROM ITENSPEDIDO

Desta forma obtenho o código mais recente e incremento, porém a dúvida é: na rede se 2 pessoas calharem de adicionar um item no pedido EXATAMENTE ao mesmo tempo, pode acontecer duplicação de códigos(há muito uso em todos terminais).. na verdade eu prefiro usar o campo autonumeração pra não dar este problema mas como a base vem já do paradox não sei como resolver a questão de forma confiável se fosse interbase eu poderia usar generators mas neste caso as máquinas são pentium 100 e fica muito lento. Será que alguém pode me dar uma opinião melhor sobre como resolver a geração de autoincremento sem usar o método autoincremento automático do access?

[i:4a43425ffe]Favor não digitar o título em maiúsculas. (marcelo.c - Moderador)[/i:4a43425ffe]


Jorgemsoares

Jorgemsoares

Responder

Posts

23/09/2003

Biscalquini

No Access existe o campo do tipo auto incremento, é só colocar este tipo para o campo desejado, dependendo dos componentes de acesso, ele porde chiar pq vc não está passando valores para a chave ao fazer UPDATE, neste caso passe 0 (zero). Deve funcionar, pelo no firebird funciona usando Trigger e generator, que é como um auto incremento, o problema é que a query vai ficar desatualizada, pq ao inserir no banco este irá passar um novo valor ao auto incremento, e se vc tentar atualizar a mesma query duas vezes ele pode gerar um ReconcileError, pq os dados visualizados não coincidem com os dados do banco, ou seja ele não achou o registro pq o autoincremento mudou a chave, para este caso controle a Transação do banco de dados com o componente de conexão, fazendo um isolamento de READCOMMITED e dando um COMMIT no banco a cada UPDATE. Isto deve resolver tudo.

Case tenha mais dúvidas me contate pelo ICQ (89085074)


Responder

Gostei + 0

23/09/2003

Jorgemsoares

Olá, obrigado por ler minha dúvida. Mas o grande problema é que não é possível gravar campos autoincremento! Como irei portar minhas tabelas paradox que já possuem numeração para campos autoincremento do access?
Tem como alterar o marcador interno do campo autoincremento do access ou como sobrescrever os códigos autoincremento para que fiquem idênticos à tabela paradox?

Pois existem clientes por exemplo com código certo como 1250 e na tabela access este código precisa permanecer igual.


Responder

Gostei + 0

23/09/2003

Jorgemsoares

sobe


Responder

Gostei + 0

23/09/2003

Judafox

Uma vez tive que fazer isso.... a solução adotada foi de criar a tabela no acess setando o tipo de dados auto-incremento... e fazer um programa para importar da tabela paradox observando a numeração em ordem e quando um itens estiver excluido no paradox deve ser incluido e e depois excluido no access....

Espero ter ajudado....


Responder

Gostei + 0

23/09/2003

Anorex

uma solução paleativa e fácil de trabalhar e vc criar um campo no access chamado cod_antigo nele vem o código do paradox ai vc cria outro campo autoincremento no access fazendo as relações que vc precisar com o campo cod_antigo...


Responder

Gostei + 0

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

Aceitar