Fórum Sobre pesquisa de chave única com ClientDataSet... #295742
15/09/2005
0
Pessoal, tenho de fazer uma verificação antes de salvar o registro... porque tenho uma chave única duplicada, então dou um SQL antes de inserir o novo registro para ver se não existe nenhum registro com os mesmos dados... só que a pouco comecei a trabalhar sem mandar os dados para o BD... (trabalho com ClientDataSet) e então eu inseria vários registros antes de dar um ApplyUpdates... só que nesse caso não adiantaria com SQL, pois poderia existir registros com os mesmos dados em cache e o SQL não adiantaria... pensei em dar o SQL e verificar também no Delta do ClientDataSet... o q fazer :?:
Ex...:
No Banco de Dados existem os registros
e tento inserir um registro com o mesmo IdAluno e IdResponsável (que compõem a chave única composta) com SQL eu saberia que estou diante de dados repetidos...
Mas no caso de existir no Delta do ClientDataSet o seguinte registro:
E sem dar um ApplyUpdates inserir o registro
o SQL não retornaria registro duplicado, porém quando der um ApplyUpdates isso me daria um erro de violação de Chave Única...
Ex...:
No Banco de Dados existem os registros
IdAluno -> 1; IdResponsavel -> 1; Nome -> ´Bruno´;
e tento inserir um registro com o mesmo IdAluno e IdResponsável (que compõem a chave única composta) com SQL eu saberia que estou diante de dados repetidos...
Mas no caso de existir no Delta do ClientDataSet o seguinte registro:
IdAluno -> 1; IdResponsavel -> 2; Nome -> ´Bruno´;
E sem dar um ApplyUpdates inserir o registro
IdAluno -> 1; IdResponsavel -> 2; Nome -> ´Br´;
o SQL não retornaria registro duplicado, porém quando der um ApplyUpdates isso me daria um erro de violação de Chave Única...
Bruno Belchior
Curtir tópico
+ 0
Responder
Posts
16/09/2005
Bruno Belchior
Pessoal resolvi realmente usar o delta... só que quando copio o delta de um CDS para o data de outro, o CDS fonte sai do modo de edição... alguém tem alguma idéia para evitar isso :?:
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)