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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  ADO - SQL
Susana
ANGRA DOS REIS
RJ - BRASIL
Postada em 24/05/2005 16:22 hs            
Tenho a seguinte conexão com o Banco de Dados:
Conexao As new ADODB.Connection
Conexao.open .........(OLEDB ou ODBC ou  ...)
Para realizar uma atualização (inserir ou alterar um registro) normalmente faço assim:
Exemplo:
1)
conexao.execute "UPDATE Tabela SET Nome = 'Maria' WHERE CPF = '123'"
Porém muitas pessoas programam assim:
2)
Dim CmdNom As New ADODB.Command
Set CmdNom.ActiveConnection = conexao
CmdNom.CommandText = "UPDATE Tabela set Nome = ? Where  CPF = '123'"
CmdNom.Parameters.Append .CreateParameter("Nome", adVarChar, adParamInput, 30)
CmdNom.Parameters("Nome") = "Maria"
CmdNom.execute
 
No INSERT segue mais ou menos a mesma linha de programação.
Qual é a vantagem de usar a segunda opção, que exige mais codificação? performance, segurança, ???
Gostaria muito de esclarecer esta dúvida.
     
Sandro
não registrado
Postada em 24/05/2005 17:41 hs   
Olá Susana,
 
não há vantagem alguma, acontece que algumas pessoas simplesmente copiam códigos de tutoriais que ensinam a utilizar os objetos Command, que podem executar praticamente qualquer ação, desde selecionar registros até executar inserções, atualizações e até apagar registros.
O uso de objetos Command só se justifica para executar Store Procedures em BD cliente/servior, como o Oracle ou SQL Server. Eu também programo como você dando uma ordem diretamente à conexão sem o uso de objetos Command.
Algumas pessoas também usam objetos Command para recuperar registros com Select, ignorando o fato do ADO possuir o objeto Recordset assim como a ADO. Aliás, o Recordset é mais rápido e econômico em termos de memória utilizada para se selecionar registros que o Command.
Resumindo, continue programando da forma como está, além de não causar problema algum, é mais rápido e evita desperdício de memória.
 
um abraço,
Sandro.
     
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 25/05/2005 17:42 hs            
Suzana, minha opiniao é a mesma do Sandro... só quero acrescentar algo: o uso do SQL diretamente (INSERT, UPDATE, SELECT, DELETE)  é cerca de 5 vezes mais rapido q o uso de Commands e Parameters, e alem do mais é bem mais rapido pra programar e dar manutenção...
 
Sandro, uma correção: tambem dá pra disparar SPs no SQL-Server ou em qq outro SGBD usando o SQL diretamente... os objetos command e parameter sao uma herança do RDS que nao permitia o uso do SQL nativo... só sao mantidos por compatibilidade de sistemas antigos e programadores q nao se adaptaram...
 
Qto a segurança, o Command da uma garantia de encapsulamento de informaçoes na rede, mas se vc pensar q nao vai enviar comandos pela internet, nao há necessidade disso... e se fosse na internet, nao iria ajudar muito... tem formas melhores de garantir segurança...


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

     
Página(s): 1/1    

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