Fórum Como identificar se está sendo feito Update ou Insert no CDS #324410
28/06/2006
0
SQLDataSet + DataSetProvider + ClientDataSer.
Todos concentrados em um DM. Estou tentando deixar todas as regras de negócio dentro deste DM, antes fazia a validação no BeforePost do Query q eu tinha no mesmo form do cadastro. Agora como o BeforePost do ClientDataSet não está mais na mesma tela do cadastro não consigo identificar se o registro está sendo inserido ou alterado.
Quando o usuário seleciona para alterar os DataControls que estavam ligados aos campos chave eram desabilitados e no before post eu testava a propriedade Enabled para saber se era um update ou um insert, no caso do insert precisava testar se a chave era nula, se não fosse precisava testar para saber se o código digitado já existia ou não, caso alguma das alternativas falhasse... era acionado o Abort para ele não gravar.
Tentei usar o OldValue e o NewValue, porém não funcionou pois se eu adicionar um registro com o código 700 e gravar... beleza, mas no próximo registro que vou adicionar ele fica com o OldValue igual ao último registro inserido... se o cara fizer duas vezes a inserção do mesmo código me retorna erro pois ele reconhece que os dois registros são ´os mesmos´ por ter o mesmo código.
Alguém tem idéia de como posso resolver este problema?
Se não fui claro, por favor, avisem que tento explicar a situação um pouco melhor.
Obrigado a todos.
Techsoft
Curtir tópico
+ 0Posts
29/06/2006
Andreaskaquino
if (ClientDataSet1.State = dsInsert) then //Inclusão
begin
...
end
else if if (ClientDataSet1.State = dsEdit) then //Alteração
begin
...
end
Att,
Gostei + 0
30/06/2006
Techsoft
[]´s
Gostei + 0
01/07/2006
Sremulador
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)