Jump to content


Photo

Diferença Entre Comando Sql


  • Faça o login para participar
2 replies to this topic

#1 Newbay

Newbay

    Normal

  • Usuários
  • 106 posts
  • Sexo:Não informado

Posted 23/10/2007, 15:35

Olá.. Estou iniciando em .net, procurei diversos artigos já, e me deparei com alguns tipos de select.. não entendi ql a diferença entre esses 2 modos.

Dim SQLString as String = "Select * from Clientes Where Codigo > 100"
Dim cmd as New SqlCommand(SQLString, conexao )

_______________________________________________________________

Dim conn As New OleDbConnection()
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=teste.mdb"
Dim cmd As OleDbCommand = conn.CreateCommand
cmd.CommandText = "Select * from Clientes"
conn.Open()
Dim leitor As OleDbDataReader = cmd.ExecuteReader()
--------------------------------------------------------------------------
O primeiro tem um comando SQLCommand.
No segundo tem o CreateCommand, usando o executeReader

Ql diferença??

Obrigado

Procurando na internet achei esse código tb que é diferente.

Dim cmd As OleDbCommand = conn.CreateCommand
cmd.CommandText = "Insert into Clientes Values (11,'Teste De Inclusão','Rua Teste no 10','061-123456','10/11/1965')"
cmd.ExecuteNonQuery()

-----------------------------------------------

comando = New OleDbCommand( "Insert INTO Teste ( Nome ) Values ( 'Macoratti' )", conexao )
comando.ExecuteNonQuery()

Nesse a diferença seria entre CreateCommand e OledbCommand.
ql diferença tb?

Obrigado

Edição feita por: Newbay, 23/10/2007, 17:31.


#2 JayJr

JayJr

    Normal

  • Usuários
  • 92 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 23/10/2007, 15:37

Olá amigo tenho a mesma dúvida que você, vamos ver se alguém soluciona!

Edição feita por: JayJr, 23/10/2007, 15:39.

..::::.. jay ..::::..

#3 MACUL

MACUL

    Doutor

  • Usuários
  • 770 posts
  • Sexo:Masculino
  • Localidade:SP

Posted 29/10/2007, 15:18

Primeiro os comandos não diferentes a forma é diferente.
Existe diferença entre 1 + 2 ou 2 + 1 para o resultado final ? NÃO.
então vamos lá


Na realidade existem 2 objetos o de conexão e o de comando
em asp3 ou vb6 (ou <) eram Connection e Recordset em .net existem diversos objetos em questão está o OLEDB e SqlConnection Class

OleDbConnection e OleDbCommand

======================= COMANDOS =======================

Comando 1.
Linha 1: Dim SQLString as String = "Select * from Clientes Where Codigo > 100"
Linha 2 :Dim cmd as New SqlCommand(SQLString, conexao )

Linha 1: declaração de uma variável tipo texto no caso foi definido o comando SQL
Linha 2: Declaração da variável tipo objeto SqlCommand já indicando a string de comando e o objeto de conexão que não foi demonstrado no exemplo o SqlConnection


Comando 2.
Linha 1 :Dim conn As New OleDbConnection()
Linha 2 :conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=teste.mdb"
Linha 3 :Dim cmd As OleDbCommand = conn.CreateCommand
Linha 4 :cmd.CommandText = "Select * from Clientes"
Linha 5 :conn.Open()

Linha 1 : Declaração e Criação do objeto OleDbConnection
Linha 2 : Atribui valor a propriedade string de conexão que contém a informação sobre o provedor de dados
Linha 3 : Declaração do objeto de comando e criação do objeto herdando o método do objeto conn.CreateCommand
Linha 4 : Atribui valor a string de comando SQL do objeto
Linha 5 : Abre a conexão com o servidor de dados
Linha 6 : Declara o objeto que pode guardar um array de dados e executa o comando



Comando 3.
Dim cmd As OleDbCommand = conn.CreateCommand
cmd.CommandText = "Insert into Clientes Values (11,'Teste De Inclusão','Rua Teste no 10','061-123456','10/11/1965')"
cmd.ExecuteNonQuery()


Linha 1 : Declaração do objeto de comando e Criação do objeto herdando conn.CreateCommand
Linha 2 :Atribui valor a string de comando SQL do objeto
Linha 3 :Executa o comando

Comando 4.

comando = New OleDbCommand( "Insert INTO Teste ( Nome ) Values ( 'Macoratti' )", conexao )
comando.ExecuteNonQuery()

Linha 1 :Atribui valor a string de comando SQL do objeto
Linha 2 :Executa o comando

se ainda não entendeu vamos lá existem alguns objetos de banco de dados
Existe a classe SQL CONNECTION que utiliza os driver nativos do SQL SERVER

Existe a classe OleDbConnection que utiliza o driver OLEDB e pode conectar a diversas plataformas

E por fim o ExecuteReader retorna um array de dados (tabela) e o ExecuteNonQuery uma informação única como quantidade de linhas afetadas.
*************** M ** A ** C ** U ** L ***************

*************************************************




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq