Quanto a alterações... Nunca faça nada na camada de acesso ao banco de dados. Faça no CDS. Não tem porque você gerar um Delete/Update, se o provider faz justamente isso por você...
Quanto a "campos que já existem"... Você tem algumas soluções... 1 - Cria um índice único para o campo.. ai quando você tentar gravar no banco, ele vai reclamar da duplicidade 2- Checar via Trigger 3- Fazer um select Eu prefiro usar os índices/constraints para esse tipo de checagem... Repare apenas que você só vai validar as informações quando o usuário tentar gravar todos os dados... Ou seja... O cara vai digitar tudo e só quando ele resolver salvar, vai ver que tal campo está errado. Ai você vai pensar "Ah, o select então seria o melhor"... Mas e se o usuário, só de sacanagem, ficar entrando e saindo do campo? Ficar mudando o valor? Enfim, executar um milhão de vezes seguidas o evento que dispara o teu select? Você vai ter uma queda de performance... e vários select's desnecessários serão gerados... E se você for mais radical vai falar: "Problema dele" (o meu antigo patrão falou isso pra mim)... Ao contrário.. problema seu... O sistema funcionar, e funcionar bem, e responsabilidade do programador... e não do usuário... Espero ter ajudado Francisco Thiago de Almeida Enter&Plug Sistemas Divisão: Desenvolvimento / Banco de dados Franca - SP ----- Original Message ----- From: "Evolution" <[EMAIL PROTECTED]> To: <delphi-br@yahoogrupos.com.br> Sent: Tuesday, July 26, 2005 7:18 PM Subject: Re: [delphi-br] ClientDataSet x FindKey, como otimizar ? > Olha o que vc quer fazer fica meio difícil, ainda mais se for utilizar > como PK(Chave primária) o generator, pois desta forma vc só vai ficar > sabendo se houve a violação a chave depois que gravar no banco. > O que eu costumo fazer é definir Triggers onde nestas eu checo a > duplicidade em outros campos, por exemplo 2 clientes com o mesmo cgc. > > Fausto > > dprogrammer escreveu: >> HI, >> >> tudo bom camaradas >> >> tou na fase de migrar meus sistemas para esse novo esquema usando >> ClientDataSet com DBExpress >> >> quando usava TTable sempre usei FindKey >> >> mas já vi que vou ter que mudar essa filosofia, e usar uma função >> generica >> para localizar, que eu passe a SQL e a Condição para essa função >> >> mas eu gostaria já de fazer um lance legalzinho, e gostaria de algumas >> dicas sobre o assunto, de como realmente proceder quando eu quiser testar >> se um registro existe. >> >> ou para incluir e deleter eu não deva usar o CDS e sim o SQLDataSet >> somente, sem provider e cds ? >> >> ou o mais indicado mesmo é ao invés de usar dataset.delete, localizando >> antes esse registro, ou já ir deletando usando o comando SQL, delete >> from ? >> >> desde já agardeço >> >> >> ps: é que nem rolou por aí, antes eu tinha pressão de chefe e num dava >> para >> refinar muito, mas hj tou em casa, e agora tou estudando mais, hehehe >> >> >> Intel + >> >> Visitem meu forum, tem download lá, conteúdo >> http://dprogrammer.cetasistemas.com.br/forum >> Programação, Banco de dados, Etc. >> >> Paulo Alexsandro - Maceió/Alagoas >> Programador - Delphi/NS Basic >> >> [As partes desta mensagem que não continham texto foram removidas] >> >> >> > > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > Para ver as mensagens antigas, acesse: > http://br.groups.yahoo.com/group/delphi-br/messages > > Para falar com o moderador, envie um e-mail para: > [EMAIL PROTECTED] ou [EMAIL PROTECTED] > > Links do Yahoo! Grupos > > > > > > > > > > > -- > No virus found in this incoming message. > Checked by AVG Anti-Virus. > Version: 7.0.338 / Virus Database: 267.9.5/58 - Release Date: 25/07/2005 > > _______________________________________________________ Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora! http://br.acesso.yahoo.com/ -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html