USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Melhor forma de excluir e inserir os dados?
Tamanini
não registrado
Postada em 17/11/2004 11:40 hs   
Qual seria a melhor forma de excluir e inserir dados através do ADO? No meu caso eu carrego em um grid os dados em cada linha, depois faço as alterações no grid, como excluo, insiro e assim vai. Depois irei clicar no botão atualizar, essa é minha dúvida, excluo todos os dados que estão guardados e depois insiro um a um no BD os que estão no grid ou, excluo apenas os dados que foram excluidos no grid e assim insiro apenas os que foram inseridos, para isto teria que armazenar em variáveis quais linhas exclui e inseri, correto? Qual seria a melhor escolha?
 
[]'s,
Marcelo Tamanini
     
Alê
SÃO PAULO
SP - BRASIL
Postada em 17/11/2004 12:11 hs         
Olá Marcelo,
 
Sem dúvida a melhor alternativa é a de excluir todos os registros da tabela e, em seguida, inserir os restantes do grid. Com isso você ganha em termos de codificação, pois é muito mais simples e "limpo" codificar um comando "Delete", e um "Insert" do que ter que armazenar na memória a situação anterior para uma execução dentro de um loop onde os dados seriam comparados. Se vale como dica, todas as aplicações onde utilizo o grid para a manutenção de ítens de registros, utilizo este mecanismo.
     
Ismael_CPD
SAO PAULO
SP - BRASIL
Postada em 17/11/2004 13:32 hs            
Concordo com o Alê...se você for jogar isto em variaveis, vc vai deixar o seu sistema mais lento.
     
Tamanini
não registrado
Postada em 17/11/2004 14:08 hs   
Certo, um exemplo, se eu tiver uma quantidade de registros grande, talvez uns 200 por exemplo, no grid eu excluo uns 40 dos 200 e insiro 20, ficaria no total do grid 180, clico para salvar as modificações, não será mais lento eu excluir os 200 registros e inserir os 180 do que, excluir através de variáveis para saber quais foram excluidos e inserir os 20 registros novos? A 1º opção será mais rápido, correto?
 
[]'s,
Marcelo Tamanini
     
Tamanini
não registrado
Postada em 18/11/2004 08:52 hs   
up!
     
Alê
SÃO PAULO
SP - BRASIL
Postada em 18/11/2004 09:50 hs         
Olá Marcelo, bom dia.
 
Mesmo com um volume grande de registros, a execução de um comando "Delete" com a cláusula "Where" identificando os 200 registros que serão excluídos, é infinitamente mais rápido e eficaz do que fazer uma deleção condicional item a item. É óbvio que o comando "Insert" levará um tempo para ser executado, afinal você terá que ler o grid.
Neste caso, acredito que o bom senso em relação ao nível de segurança e integridade que você quer que o seu programa tenha, é quem deve determinar qual a melhor estratégia a ser utilizada. Sem dúvida o volume de registros numa operação de "Insert, Update ou Delete" interfere grandemente em performance. Vale saber qual a periodicidade de atualização desta tabela. Se for muito intensa, tudo o que for possível se fazer para obter ganho de performance, deverá ser feito.
Tecnicamente falando, numa base de dados MS SQL, com até 1000 registros no grid eu faria o "Delete/Insert". É preciso levar em conta também as validações, possíveis constraints, etc. Cada caso é um caso diferente e merece todo o empenho no que diz respeito a otimização.
 
Um abraço.
 
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página