Fórum Validar existência de registros duplicados antes do ApplyUpdates.... #401986

30/05/2011

0

Bom dia amigos,
Estou com o seguinte problema:
Tenho um formulário com Mestre-detalhe, no qual os registros detalhes não podem ser repetidos, e esses mesmos detalhes são mestre de outra tabela detalhe. Ex:
Bancos                                           |->Agencias                                       |->Conta Corrente     
O problema esta quando estou fazendo a inclusão de um novo banco juntamente com uma nova agencia e uma nova conta corrente, se por exemplo eu repetir a mesma agencia do mesmo banco ou a mesma conta corrente da mesma agencia ele deixa eu cadastrar mesmo validando. Isso ocorre porque estou usando o Post e dando ApplayUpdates para efetivar tudo no final da transação.
Quero saber se existe uma forma de eu validar a existência de registros duplicados ainda no post antes de envia-los para o banco.
Obrigado.

Paulo

Paulo

Responder

Posts

30/05/2011

Wilson Junior

Faça a validação no evento OnBeforePost do ClientDataSet.

Espero ter colaborado.
Responder

Gostei + 0

30/05/2011

Paulo

Talvez eu não tenha me expressado de forma correta...
Incluo um determinado banco: (Master)cdsBancos.insert;001-Banco do BrasilcdsBancos.Post; 
Incluio as agências nesse banco:(Detail) cdsagencias.insert;001- Banco do Brasil123- Agência Teste da SilvacdsAgencias.post;
cdsagencias.insert;001- Banco do Brasil444- Agência Teste do BragacdsAgencias.post;
cdsagencias.insert;001- Banco do Brasil123- Agência Teste da Amanda   **************** neste ponto que tenho o problemacdsAgencias.post;                                              cdsBancos.applyupdates(0);
Ou seja, só consigo validar se já existe esta agência depois que dou um apply, nesse caso ela ainda não existe no banco.eu valido assim: cdsAgencia.close;sdsAgencia.commanText:='select * from agencias where agencia_codigo = '+dbeAgencia.text +'banco_codigo = ' + dbeBanco.text ....cdsAgencia.open;
if cdsAgencia.recodcount<>0 then showmessage('Agencia já existe....') .....








Faça a validação no evento OnBeforePost do ClientDataSet.

Espero ter colaborado.

 
 
Responder

Gostei + 0

30/05/2011

Wilson Junior

Faça um clone do seu ClientDataSet, veja este link http://www.ramosdainformatica.com.br/art_recentes01.php?CDA=698, neste link mostra como duplicar um registro, mas vc irá fazer percorrer e procurar a sua agencia nele, caso não exista no seu ClientClone, verifique no banco de dados se existe o registro.

Espero ter colaborado.
Responder

Gostei + 0

30/05/2011

Paulo



Amigão, vlw pela força, resolvi o problema.... muito obrigado. t+




registro, 
 
Responder

Gostei + 0

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

Aceitar