Fórum ClientDataSet auto incremento Key Violation #217599
01/03/2004
0
Como trabalhar com campos auto incremento no ClientDataSet ?
Sempre que eu adiciono um novo registro ocorre um ´Key Violation´ porque o registro anterior não foi enviado ao Banco de Dados.
Eu tenho sempre que dar um ApplyUpdates antes de adicionar um novo registro?
Obrigado.
Emanoel
Curtir tópico
+ 0Posts
01/03/2004
Buosinet
A filosofia do ClientDataSet é não ficar acessando o banco a todo momento, voce deve fazer o cache em memória. O problema é que você também não pode controlar isso localmente, pois voce pode ter o problema de vários usuários estarem inserindo ao mesmo tempo, o que vai gerar problema na sua sequencia.
Assim, ou você aplica o cache a cada post, e calcula a chave no evento BeforeUpdateRecord do Provider, ou abandona a idéia da chave sequencial nos seus projetos. Eu, particularmente, adotei a segunda opção e tudo funciona muito bem.
Caso precise de mais ajuda, é só falar.
Buosi.
Gostei + 0
02/03/2004
Emanoel
E quando você precisa gerar um código seqüencial, o que você faz? Por exemplo, em um cadastro de clientes para gerar o código, ou produtos, etc...
Como fazer isto em um programa de vendas? Onde cada venda possui vários produtos?
Obrigado.
Gostei + 0
02/03/2004
Khundalini
Eu disponho tanto da materia como do código fonte ilustrando a técnica. Quem quiser, me peça em PVT. Não responderei a qualquer um que pedir esse material na lista.
[]s
Gostei + 0
02/03/2004
Khundalini
http://community.borland.com/article/0,1410,20847,00.html
Provavelmente, pode ser pedido para que você registre-se no site para poder acessar o conteúdo.
[]s
Rubem Rocha
Manaus, AM
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)