NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigos › ASP 3.0 › Capítulo 07 : 02
Quer receber novidades e e-books gratuitos?
« Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
SITES DINÂMICOS COM ASP 3.0 - CURSO COMPLETO
Autor: Júlio Battisti


Promoção: Livro Windows Server 2012 R2 e Active Directory - Curso Completo, 2100 Páginas. Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

Promoção: Livro Windows Server 2012 R2 e Active Directory

Curso Completo, 2100 páginas.

Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

MAIS DETALHES | COMPRAR ESTE LIVRO


Lição 055 - Capítulo 07 - O Objeto Command

Utilizamos o objeto Command para definir um determinado “comando” que deverá ser executado em um fonte da dados, como um Banco de dados do Microsoft Access ou do Microsoft SQL Server. O objeto Command é especialmente indicado para a execução de comandos que necessitem de parâmetros, com por exemplo, Stored Procedures de um Banco de dados do Microsoft SQL Server., ou consultas parametrizadas do Microsoft Access.

Uma consulta parametrizada é um tipo especial de consulta, a qual espera receber um ou mais valores (os parâmetros). Os valores recebidos são utilizados, normalmente, como critérios de pesquisa, de tal forma que somente serão retornados os registros que atenderem os critérios especificados. Por exemplo, poderíamos ter um parâmetro no campo ShipCountry da tabela Orders do Banco de dados nwind.mdb. Se passarmos para este parâmetro o valor Germany, serão retornados apenas os registros em que o campo ShipCountry for igual a Germany.

Uma breve introdução ao objeto Command.

Para criar um objeto Command utilizamos a seguinte sintaxe:

Set   nome_objeto = Server.CreateObject(“ADODB.Command”)

O exemplo a seguir, cria o objeto Command chamada Pedidos:

Set Pedidos = Server.CreateObject(“ADODB.Command”).

IMPORTANTE! Nunca é demais lembrar que para criar um objeto, devemos utilizar o operador Set, caso contrário obteremos um erro quando a página for carregada.

Para iniciarmos o estudo do objeto Command, vamos analisar o exemplo da Listagem 7.1.

Listagem 7.1 – Utilizando o objeto Command para retornar dados – command1.asp.

1          <%@ Language=VBScript %>

2          <HTML>

3          <HEAD>

4          </HEAD>

5          <TITLE>Utilizando o objeto Command.</TITLE>

6          <BODY>

7          <%

8          'O Primeiro passo é criar a conexão com o Banco de dados.

9          'Para isto crio um objeto do tipo Connection.

10        'Cria um Objeto do Tipo ADODB.Connection

11        Set conn=Server.CreateObject("ADODB.Connection")

12        'Agora abro uma conexão com o arquivo nwind.mdb

13        'utilizando OLE DB.

             

14        conn.ConnectionString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;

            DATA SOURCE=c:\meus documentos\nwind.mdb"

15        conn.Open

16        'Agora crio um objeto do tipo Command, o qual será,

17        'automaticamente associado com a conexão conn.

 

18        Set com_orders = Server.CreateObject("ADODB.Command")

           

19        com_orders.CommandText = "Select * From Orders Order By OrderDate"

20        com_orders.ActiveConnection = conn

           

21        'Agora retorno o resultado do comando, utilizando o

22        'método Execute.

23        'Este resultado será armazenado em um objeto RecordSet

24        'chamado Pedidos.

           

25        Set Ped= Server.CreateObject("ADODB.RecordSet")

26        Set Ped=com_orders.Execute

                       

27        %>

28        <HR>

29        <TABLE>

30        <TR>

31           <TD>Código</TD>

32           <TD>Data  </TD>

33        </TR>  

34       

35        <%

36        Do Until Ped.EOF

37        %>

38        <TR>

39           <TD><%=Ped.Fields("OrderID")  %> </TD>

40           <TD><%=Ped.Fields("OrderDate")%> </TD>

41        </TR>  

              

42        <%

43        Ped.MoveNext

44        Loop

45        %>

           

46        </TABLE>

47        <HR>

48        </BODY>

49        </HTML>

Ao carregarmos este arquivo obtemos o resultado indicado na Figura 7.1.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 7.1 Carregando a página comand1.asp.

A novidade na Listagem 7.1 é a utilização do objeto Command para a obtenção do RecordSet Ped. Vamos analisar os métodos e propriedades que foram utilizados.

  • Primeiro criamos um objeto do tipo Command, conforme indicado pelo seguinte comando:

18        Set com_orders = Server.CreateObject("ADODB.Command")

  • O próximo passo é definir a propriedade CommandText. Esta propriedade foi configurada com a instrução SQL que deverá ser executada no Banco de dados, para retornar os registros desejados. No nosso exemplo, a instrução SQL retorna todos os registros da tabela Orders e ordena a listagem pelo campo OrderDate, conforme indicado no seguinte comando:

19        com_orders.CommandText = "Select * From Orders Order By OrderDate"

  • Em seguida definimos a conexão com a qual o objeto com_orders está associado. Para isto definimos a propriedade ActiveConnection, conforme indicado no seguinte comando:

20        com_orders.ActiveConnection = conn

A partir de agora os comandos executados pelo objeto Command serão executados na conexão conn, a qual está ligada ao Banco de dados nwind.mdb.

  • Agora criamos um objeto do tipo RecordSet chamado Ped:

25        Set Ped= Server.CreateObject("ADODB.RecordSet")

  • O último passo é utilizar o método Execute do objeto com_orders.

Ao utilizarmos o método Execute, é executada a instrução  contida no propriedade CommandText. O resultado é retornado para o objeto RecordSet especificado no comando, conforme indicado abaixo:

26        Set Ped=com_orders.Execute

Neste caso após a execução do método Execute, os registros retornados estarão armazenados no objeto Ped, o qual é um objeto do tipo RecordSet.

Veja que o que fizemos foi, simplesmente, utilizar um objeto Command e as propriedades CommandText, ActiveConnection e o método Execute, para criar um objeto RecordSet com todos os registros da tabela Orders.

Você pode estar questionando: “Porque todos estes passos, se podemos simplesmente utilizar o método Open do objeto RecordSet, como já fizemos nos capítulos anteriores ?”

A resposta é simples. Estamos estudando o objeto Command, porque existem determinadas operações que somente podem ser executadas com o objeto Command, como por exemplo, passar parâmetros para um Stored Procedure ou uma consulta Parametrizada.

Agora que já fizemos um estudo preliminar do objeto Command, vamos apresentar as demais propriedades e métodos deste objeto.

Os métodos do objeto Command.

Na Tabela 7.1 temos uma descrição dos métodos do objeto Command.

Método Descrição
Cancel Cancela a execução do método Execute caso a mesma ainda esteja pendente.
CreateParameter Cria um novo objeto do tipo Parameter. Pode ser utilizado, por exemplo, para passar parâmetros para consultar Parametrizadas do Microsoft Access.
Execute Executa uma pesquisa, instrução SQL ou Stored Procedure especificado na propriedade CommandText.

Tabela 7.1 Os métodos do objeto Command.

Ainda neste item veremos exemplos de aplicação destes métodos.

As propriedades do objeto Command.

Na Tabela 7.2 temos uma descrição das propriedades do objeto Command.

Propriedade Descrição
ActiveConnection Determina a qual conexão o objeto Command estará ligado, isto é, através de qual conexão os comandos serão executados.
CommandText Contém o texto do comando que será executado contra a conexão definida na propriedade ActiveConnection.
CommandTimeout Indica por quanto tempo o comando pode ser executado. Caso o comando não retorne um resultado no tempo especificado por esta propriedade, será gerada uma mensagem de erro e a execução do comando será suspensa. O tempo é especificado em segundos e o valor padrão é 30 segundos.
CommandType Indica o tipo de comando que será executado. Na tabela 7.3 temos uma descrição dos tipos de comandos possíveis.
Name Indica o nome do objeto Command.
Parameters Contém todos os objetos do tipo Parameter definidos para o objeto Command.
Prepared Indica se é para salvar ou não uma versão compilada do objeto Command após a execução do mesmo. O armazenamento de versões compiladas melhora o desempenho do Banco de dados. Esta possibilidade depende do Banco de dados que está sendo acessados. O Microsoft SQL Server 2000 permite que sejam criadas e armazenadas versões compiladas dos comandos e Store Procedures executados. Com isso da próxima vez que o comando for executado, o mesmo não precisa ser novamente interpretado para gerar a versão compilada. Em ambientes acessados por um grande número de usuários, este recurso pode ser de grande valia para melhorar o desempenho.
Proprierties Contém todos os objetos do tipo Property definidos para o objeto Command.
State Indica se o objeto Command está aberto (Open) ou fechado (Closed). Esta propriedade é somente para leitura.

Tabela 7.2 As propriedades do objeto Command.

Na Tabela 7.3, temos uma relação dos tipos de comandos possíveis, os quais são definidos pela propriedade CommandType.

Valor/Constante Tipo de comando
-1
adCmdUnspecified
Não especifica o tipo de Comando.
1
adCmdText
Avalia o texto definido na propriedade CommandText, o qual pode ser uma instrução SQL ou uma chamada para um Stored Procedure do Banco de dados.
2
adCmdTable
Considera o valor da propriedade CommandText como sendo o nome de uma tabela que foi gerada a partir de uma instrução SQL. Somente retorna as colunas definidas pela instrução SQL. Para retornar todas as colunas, devemos utilizar o tipo 512 - adCmdTableDirect.
4
adCmdStoredProc
Considera o valor da propriedade CommandText como sendo o nome de uma Stored Procedure.
8
adCmdUnknown
Considera o valor da propriedade CommandText como sendo de tipo desconhecido. É o valor padrão.
256
adCmdFile
Considera o valor da propriedade CommandText como sendo o nome de um RecortSet armazenado em um arquivo.
512
adCmdTableDirect
Considera o valor da propriedade CommandText como sendo o nome de uma tabela em que todos os campos são retornados.

Tabela 7.3 Valores possíveis para a propriedade CommandType.

A sintaxe para definir a propriedade CommandType é a seguinte.

Objeto.CommandType = valor

ou

Objeto.CommandType = constante

Observe que podemos utilizar o valor numérico ou uma constante predefinida. Por exemplo para podemos utilizar o valor 1 ou a constante adCmdText para definir o tipo do comando como sendo texto.

Existe um grande número de constantes predifinidas para os objetos ADO.  Estas constantes estão localizadas nos seguintes arquivos:

  • adovbs.inc :  Constantes para a linguagem VBScript.
  • adojava.inc:  Constantes para a linguagem JScript.

Estes arquivos estão localizados, normalmente, em uma das seguintes pastas:

  • Para o Windows 2000 em Português:

Arquivos de programas\Arquivos comuns\System\ADO

  • Para o Windows 2000 em Inglês:

Program Files\Common Files\system\ado

Para que possamos utilizar estas constantes, devemos utilizar uma diretiva “include” para incluir estes arquivos, ou  definir uma referência utilizando a tag a seguir:

<!- -METADATA TYPE=”typelib” uuid=”{00000205-0000-0010-8000-00AA006D2EA4}” - ->

Esta tag deve ser incluída dentro da seção <HEAD> </HEAD> de cada página ASP que utilizará as constantes ou no arquivo global.asa. Incluindo no arquivo global.asa, as constantes estarão disponíveis para qualquer página ASP que faça parte da aplicação Web.

Voltaremos a falar sobre o arquivo global.asa.

Agora vamos a alguns exemplos de código para o objeto Command.

Exemplificando alguns métodos e propriedades do objeto Command.

Vamos iniciar criando uma objeto Connection e um objeto Command, conforme indicado pelo trecho a seguir:

'Criamos um objeto do tipo Connection

             Set conn=Server.CreateObject("ADODB.Connection")

'Agora abro uma conexão com o arquivo nwind.mdb

'utilizando OLE DB.

             

            conn.ConnectionString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;

            DATA SOURCE=c:\meus documentos\nwind.mdb"

            conn.Open

'Agora crio um objeto do tipo Command

 

            Set com_orders = Server.CreateObject("ADODB.Command")

Uma vez criado o objeto Command, vamos definir qual a conexão que o mesmo utilizará. Para isso definimos a propriedade ActiveConnection:

            com_orders.ActiveConnection = conn

Agora vamos definir o tipo de comando. Para isso utilizaremos a propriedade CommandType:

            com_orders.CommandType = 1

Ao invés do valor numérico podemos utilizar a constante equivalente, conforme indicado no exemplo:

            com_orders.CommandType = adCmdText

Agora vamos definir o comando que o objeto Command executará. Para isso definimos a propriedade CommandText:

            com_orders.CommandText = "Select * From Orders Order By OrderDate"

Vamos definir o TimeOut em 2 minutos (120 segundos)  para a execução deste objeto Command, utilizando a propriedade CommandTimeout:

com_orders.CommandTimeout= 120

Agora vamos criar um objeto RecordSet e utilizar o método Execute do objeto Command para retornar registros para o objeto RecordSet:

            Set Ped= Server.CreateObject("ADODB.RecordSet")

            Set Ped=com_orders.Execute

Consultas parametrizadas no Microsoft Access.

Conforme descrito anteriormente, podemos utilizar o objeto Command para passar parâmetros para consultas Parametrizadas do Microsoft Access ou para Stored Procedures do Microsoft SQL Server. Neste tópico aprenderemos a trabalhar com parâmetros.

Para saber mais sobre a criação de consultas no Microsoft Access, consulte a documentação do produto ou consulte o livro “Série Curso Básico e Rápido Microsoft Access 2000”, da editora Axcel Books.

Na Figura 7.2 temos uma consulta do Microsoft Access. A consulta é baseada na tabela Orders e foram incluídos os seguintes campos:

  • OrderID
  • OrderDate
  • ShipName
  • ShipCity
  • ShipCountry

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 7.2 Consulta no Microsoft Access.

Ao executarmos esta consulta, no Microsoft Access, são exibidos todos os pedidos, pois nenhum critério de filtragem foi imposto. Na Figura 7.3, vemos o resultado da execução desta consulta.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 7.3 Execução da consulta sem critérios de filtragem.

Podemos definir um critério de filtragem. Por exemplo, podemos que sejam exibidos os pedidos apenas para a Argentina. Para isso poderíamos especificar um critério para o campo ShipCountry, conforme indicado na Figura 7.4.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 7.4 Especificando um critério para o campo ShipCountry.

Ao executarmos esta consulta, no Microsfot Access, serão exibidos apenas os pedidos em que o campo ShipCountry seja igual a Argentina. Na Figura 7.5, vemos o resultado da execução desta consulta.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 7.5 Execução da consulta com um critério de pesquisa.

Observe que somente foram exibidos os pedidos para a Argentina, o que confirma o correto funcionamento do critério que foi especificado.

Porém esta maneira de especificar critérios é pouco flexível, pois cada vez que queremos alterar o critério, teríamos que digitar o novo critério, salvar a consulta e executá-la novamente. Podemos obter uma maior flexibilidade especificando um parâmetro para a consulta. Depois colocamos este parâmetro como critério no campo ShipCountry. Ao especificarmos um parâmetro como critério para o campo ShipCountry, cada vez que a consulta for executada, o Microsoft Access nos pergunta o valor do parâmetro, nos digitamos o valore desejado. O valor desejado passa a servir como critério de filtragem.

Para definir um parâmetro, selecione o menu Consulta -> Parâmetros. Na janela que surge digite Pais (sem acento) para o nome do parâmetro e selecione Texto para o tipo do parâmetro, conforme indicado na Figura 7.6.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 7.6 Definindo um parâmetro para a consulta.

Depois basta colocar como critério, no campo ShipCountry, o nome do parâmetro entre colchetes, conforme indicado na Figura 7.7.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 7.7 Definindo o parâmetro como critério para o campo ShipCountry.

Ao executar esta consulta, o Microsoft Access reconhece a existência do parâmetro, e abre uma janela pedindo para que o usuário digite um valor para o parâmetro, conforme indicado na Figura 7.8

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 7.8 O usuário deve digitar um valor para o parâmetro.

Vamos supor que o usuário digite France e dê um clique em OK. Serão exibidos todos os pedidos em que o campo ShipCountry seja igual a France, conforme indicado na Figura 7.9.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 7.9 Execução da consulta com o valor do parâmetro definido como France.

Utilizando parâmetros, cada vez que a consulta é executada podemos fornecer um valor diferente para o parâmetro, valor esse que serve para filtrar os resultados. Podemos definir parâmetros em mais do que um campo da consulta, com isso, ao executar a consulta, serão pedidos valores para cada um dos parâmetros definidos.

O nosso objetivo é poder, a partir de uma página ASP, executar uma Consulta Parametrizada do Microsoft Access. Para isso, precisamos passar, a partir da página ASP, os valores para os parâmetros definidos na consulta. Isso é possível de ser feito com a utilização do objeto Parameter e a propriedade Parameters do objeto Command.

Na seqüência deste capítulo estudaremos o objeto Parameter, bem como a passagem de parâmetros utilizando o objeto Command.

Esta consulta foi salva com o nome de con_pedidos. Utilizaremos este nome em exemplos mais adiante. Caso você tenha criado uma consulta com um nome diferente, utilize o nome da consulta que você criou, nos exemplos deste capítulo.


Promoção: Livro Windows Server 2012 R2 e Active Directory - Curso Completo, 2100 Páginas. Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

Promoção: Livro Windows Server 2012 R2 e Active Directory

Curso Completo, 2100 páginas.

Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

MAIS DETALHES | COMPRAR ESTE LIVRO


« Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
Quer receber novidades e e-books gratuitos?

Cursos Online

  • Banco de Dados
  • Carreira
  • Criação/Web
  • Excel/Projetos
  • Formação
  • + Todas as categorias
  • Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

    Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

    Todos os direitos reservados, Júlio Battisti 2001-2019 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI