AS EMPRESAS ESTÃO "DESESPERADAS" POR ESTE TIPO DE PROFISSIONAL... - VOCÊ É UM DELES?
MEGA FORMAÇÃO EM INFRAESTRUTURA DE TI - O Conhecimento que Vira Dinheiro - CLIQUE AQUI
« 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 |
||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Lição 057 - Capítulo 07 - Utilizando o objeto Command para passar parâmetros para uma consulta Parametrizada | ||||||||||||||||||||||||||||||||||||||||||||||||
Neste item vamos utilizar o objeto Command e a sua coleção Parameters para acessar a consulta con_pedidos e passar um valor para o parâmetro Pais da consulta. Vamos criar um formulário, onde temos uma lista, gerada dinamicamente pelo ASP, na qual temos a listagem dos países em ordem alfabética. O usuário seleciona um país na lista e clica no botão Pesquisar. Feito isso será chamada uma página procurapais.asp, a qual passa o valor selecionado na lista como parâmetro para a consulta con_pedidos, a qual retorna a listagem dos pedidos para o país selecionado. A página inicial, na qual construiremos a listagem de países será chamada de command2.asp. Na Figura 7.10 temos um diagrama do funcionamento do nosso exemplo.
Na Listagem 7.2 temos o código que cria a página command2.asp. Listagem 7.2 – Criando a lista com o nome dos países – command2.asp. 1 <%@ Language=VBScript %> 2 <HTML> 3 <HEAD> 4 </HEAD> 5 <TITLE>Selecione o País de destino.</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 criamos um Objeto RecordSet. 17 'Este Objeto irá acessar o campo ProductName 18 'da tabela Produtos 19 Set Paises = Server.CreateObject("ADODB.Recordset") 20 Paises.Open "Select ShipCountry from Orders Group By ShipCountry Order By ShipCountry", conn, 3, 3 21 'Neste ponto tenho o objeto Paises com uma listagem 22 'em ordem ascendente, dos países para os quais existem 23 'pedidos efetuados. 24 %> 25 <P><B>Selecione o país a ser pesquisado.</B></P> 26 <P><B><I>Depois clique no botão Pesquisar.</I></B></P> 27 <FORM action=procurapais.asp method=post id=form1 name=form1> 28 <SELECT id=listapaises name=listapaises> 29 <% 30 'Agora construo a lista de opções a partir dos 31 'dados obtidos da tabela Orders. 32 'Para cada país obtido, crio uma nova opção 33 'na lista. 34 Do While Not Paises.EOF 35 Response.Write "<OPTION value=" & Chr(34) & Paises.Fields("ShipCountry") & Chr(34) & ">" & Paises.Fields("ShipCountry")& "</OPTION>" 36 Paises.MoveNext 37 Loop 38 %> 39 </SELECT> 40 <BR> 41 <HR> 42 <INPUT type="submit" value=Pesquisar id=Pesquisar name=Pesquisar> 43 </FORM> 44 </BODY> 45 </HTML> Agora precisamos construir a página procurapais.asp. Esta página receberá o valor selecionado na lista, passará este valor para o parâmetro Pais da consulta con_pedidos, a qual irá retornar somente os pedidos para o país selecionado. A página procurapais.asp também exibirá os resultados obtidos. Na Listagem 7.3 temos o código que cria a página procurapais.asp. Listagem 7.3 – Passando um valor para o parâmetro Pais da consulta con_pedidos. 1 <%@ Language=VBScript %> 2 <HTML> 3 <HEAD> 4 </HEAD> 5 <TITLE>Resultados da pesquisa.</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 criamos um Objeto RecordSet para reapresentar 17 'a lista de países no final, para que o usuário possa 18 'fazer uma nova pesquisa. 19 Set Paises = Server.CreateObject("ADODB.Recordset") 20 Paises.Open "Select ShipCountry from Orders Group By ShipCountry Order By ShipCountry", conn, 3, 3 21 'Agora crio um objeto do tipo Command 22 'defino a conexão ativo utilizando a propriedade ActiveConnection. 23 'Depois defino o tipo de comando utilizando a propriedade 24 'CommandType. O valor 4 significa que é um Stored Procedure. 25 'Para o caso de consultas do Microsoft Access devemos definir 26 'o tipo como sendo Stored Procedure. 27 'Ao invés do valor 4 poderíamos utilizar a constante 28 'adCmdStoredProc 29 Set com_paises = Server.CreateObject("ADODB.Command")
30 com_paises.ActiveConnection = conn 31 com_paises.CommandType = 4
32 'Agora começo a definir as características do parâmetro. 33 'Crio variável para definir o nome do parâmetro.
34 nome_par = "Pais"
35 'Crio uma variável para conter o valor do parâmetro. 36 'Defino este valor como sendo o valor selecionado 37 'na lista de países. 38 valor_par= Request.Form("listapaises")
39 'Agora crio variáveis que definem as demais 40 ' características do parâmetro. 41 tipo_par = 129 'parâmetro do tipo string. 42 tama_par = 50 'define o tamanho do parâmetro. 43 dire_par = 1 'define um parâmetro de entrada. 44 'Agora crio um objeto do tipo Parameter 45 Set pais_par=com_paises.CreateParameter (nome_par,tipo_par,dire_par,tama_par,valor_par) 46 'Adiciono o parâmetro a coleção Parameters. 47 com_paises.Parameters.Append pais_par 48 'Defino o comando a ser executado como sendo o nome 49 'da consulta con_pedidos 50 com_paises.CommandText = "con_pedidos"
51 'Crio um objeto RecordSet e utilizo o método 52 'execute do objeto Command para retornar valores 53 'para o objeto RecordSet. 54 Set Resultados = Server.CreateObject("ADODB.RecordSet") 55 Set Resultados = com_paises.Execute
56 'Reexibo a lista de países para que o usuário possa 57 'pesquisar os pedidos para um outro país. 58 %> 59 <P><B>Para pesquisar outro país, selecione na lista.</B></P> 60 <P><B><I>Depois clique no botão Pesquisar.</I></B></P> 61 <FORM action=procurapais.asp method=post id=form1 name=form1> 62 <SELECT id=listapaises name=listapaises> 63 64 <% 65 'Agora construo a lista de opções a partir dos 66 'dados obtidos da tabela Orders. 67 'Para cada país obtido, crio uma nova opção 68 'na lista. 69 Do While Not Paises.EOF 70 Response.Write "<OPTION value=" & Chr(34) & Paises.Fields("ShipCountry") & Chr(34)
71 If Paises.Fields("ShipCountry")= Request.Form("listapaises") Then 72 Response.Write " SELECTED" 73 End If 74 Response.Write ">" & Paises.Fields("ShipCountry")& "</OPTION>" 75 Paises.MoveNext 76 Loop 77 %> 78 </SELECT> 79 <INPUT type="submit" value="Pesquisar" id=Pesquisar name=Pesquisar> 80 </FORM> 81 <% 82 'Exibo os resultados obtidos a partir da consulta 83 'con_pedidos. 84 %>
85 <B>Relação de pedidos para: <% =Request.Form("listapaises") %>.</B> 86 <HR> 87 <% 'Agora exibo os resultados utilizando uma tabela. %> 88 <TABLE border=1> 89 <TR> 90 <TD><B>Código</B></TD> 91 <TD><B>Data</B></TD> 92 <TD><B>Cidade</B></TD> 93 <TD><B>País</B></TD> 94 </TR> 95 <% 96 Do While Not Resultados.EOF 97 %> 98 <TR> 99 <TD><% =Resultados.Fields("OrderID") %></TD> 100 <TD><% =Resultados.Fields("OrderDate") %></TD> 101 <TD><% =Resultados.Fields("ShipCity") %></TD> 102 <TD><I><% =Resultados.Fields("ShipCountry") %></I></TD> 103 </TR> 104 <% Resultados.MoveNext 105 Loop 106 %> 107 </TABLE> 108 <BR> 109 <HR> 110 </BODY> 111 </HTML> A Listagem 7.3 salienta diversos pontos importantes na utilização do objeto Command para a execução de consultas Parametrizadas, através da passagem de parâmetros utilizando o objeto Parameter. Vamos detalhar alguns trechos desta listagem.
29 Set com_paises = Server.CreateObject("ADODB.Command") 30 com_paises.ActiveConnection = conn 31 com_paises.CommandType = 4 Inicialmente criamos um objeto do tipo Command, depois definimos a sua propriedade ActiveConnection como sendo a conexão conn. Por último definimos a propriedade CommandType com o valor 4. Ao invés do valor 4 poderíamos ter utilizado a constante adCmdStoredProc, o que significa que o valor passado para a propriedade CommandText deve ser o nome de uma consulta – no caso do Microsoft Access, ou de um Stored Procedure – no caso do Microsoft SQL Server. Como queremos executar a consulta con_pedidos, definimos a propriedade CommandType com o valor 4. Na Tabela 7.3 estão listados os valores e respectivas constantes para a propriedade CommandType.
32 'Agora começo a definir as características do parâmetro. 33 'Crio variável para definir o nome do parâmetro.
34 nome_par = "Pais"
35 'Crio uma variável para conter o valor do parâmetro. 36 'Defino este valor como sendo o valor selecionado 37 'na lista de países. 38 valor_par= Request.Form("listapaises")
39 'Agora crio variáveis que definem as demais 40 ' características do parâmetro. 41 tipo_par = 129 'parâmetro do tipo string. 42 tama_par = 50 'define o tamanho do parâmetro. 43 dire_par = 1 'define um parâmetro de entrada. Primeiro definimos o nome do parâmetro, o qual deve ser o mesmo nome que utilizamos para a definição do parâmetro, quando da criação da consulta no Microsoft Access. Neste caso criamos uma variável chamada nome_par e definimos o seu valor como “Pais”. Logo em seguida criamos a variável valor_par, a qual irá conter o valor que será passado para o parâmetro Pais. Este valor é o valor selecionado na lista de países da página command2.asp, conforme indicado pelo código abaixo: 38 valor_par= Request.Form("listapaises") Seguindo as definições, criamos uma variável para o tipo do parâmetro – tipo_par. A esta variável foi atribuído o valor 129. Ao invés do valor 129 poderíamos ter utilizado a constante adChar, o que define o parâmetro como sendo uma String, isto é, do tipo texto. Na Tabela 7.5 temos uma listagem com os principais valores e respectivas constantes que podem ser definidas para o tipo do parâmetro.
Tabela 7.5 Principais Valores/Constantes para definição do tipo do parâmetro. Em seguida definimos um tamanho máximo em bytes para o parâmetro, que no nosso exemplo foi definido para 50, conforme indicado pelo seguinte comando: 42 tama_par = 50 'define o tamanho do parâmetro. Finalmente definimos uma variável para conter o valor de definição para a propriedade Direction do parâmetro. Este valor foi definido em 1, o que significa um parâmetro de entrada, isto é, um parâmetro que envia um valor para a consulta do Microsoft Access. Esta definição está indicada no código a seguir: 43 dire_par = 1 'define um parâmetro de entrada. Ao invés do valor 1, poderíamos ter utilizado a constante adParamInput. Na Tabela 7.6 temos uma listagem com os valores e respectivas constantes que podem ser definidas para a propriedade Direction.
Tabela 7.6 Valores/Constantes para a propriedade Direction. Criamos variáveis para conter estes valores. Depois passaremos estas variáveis para o método CreateParameter. Ao invés de criarmos as variáveis poderíamos passar os valores, diretamente para o método CreateParameter. Adotamos este procedimento para facilitar o entendimento do código.
44 'Agora crio um objeto do tipo Parameter 45 Set pais_par = com_paises.CreateParameter (nome_par,tipo_par,dire_par,tama_par,valor_par) A sintaxe para o método CreateParameter é a seguinte: Set nome_parameter = nome_command.CreateParameter (Name, Type, Direction, Size, Value) Onde temos: 1. Name : O nome do parâmetro. 2. Type: O tipo do parâmetro. Os principais valores de tipo possíveis, estão listados na Tabela 7.5. 3. Direction: Definição da direção do parâmetro. Os principais valores de direção possíveis, estão listados na Tabela 7.6. 4. Size: Define o tamanho máximo para o parâmetro. 5. Value: Define o valor do parâmetro. No nosso caso é o valor que será enviado para a consulta con_pedidos, valor esse que servirá como critério de filtragem para o campo ShipCountry.
46 'Adiciono o parâmetro a coleção Parameters 47 com_paises.Parameters.Append pais_par Observe que passamos para o método Append, o nome do objeto Parameter a ser adicionado a coleção Parameters. Utilizando Append, podemos adicionar novos parâmetros.
50 com_paises.CommandText = "con_pedidos"
54 Set Resultados = Server.CreateObject("ADODB.RecordSet") 55 Set Resultados = com_paises.Execute Feito isso, o valor selecionado na lista de países é passado para a consulta con_pedidos. A consulta é executada e somente são retornados os registros em que o campo ShipCountry contém o valor selecionado na Lista de países. Com a utilização do objeto Command e do objeto Parameter foi possível executar uma consulta Parametrizada no Microsoft Access, passando o valor do parâmetro para a consulta. Utilizando o nosso exemplo. Agora vamos utilizar o nosso exemplo, para comprovar o correto funcionamento do mesmo. Ao carregar a página command2.asp, obtemos o resultado indicado na Figura 7.11
Vamos supor que o usuário selecionou “Norway”, na lista de países. Ao clicar no botão Pesquisar serão exibidos apenas os Pedidos o país selecionado, conforme indicado na Figura 7.12.
Observe que novamente é exibida a lista de países e o país selecionado anteriormente aparece selecionado na lista. Para pesquisar os pedidos para outro país é só selecionar o país desejado na lista e clicar no botão Pesquisar. Veja que com isso construímos um formulário de pesquisa bastante interativo. O usuário seleciona o país desejado e manda pesquisar. Cada vez que o usuário seleciona um país diferente na lista e clica no botão Pesquisar; o novo valor selecionado é passado como parâmetro para a consulta con_pedidos. A consulta é executada e retorna somente os registros que atendem ao critério passado como parâmetro. Um desafio para o amigo leitor. Agora que já conhecemos vários detalhes sobre o acesso a Bancos de dados, através de páginas ASP, fica aqui um pequeno desafio para o amigo leitor. DASAFIO: Modificar o exemplo anterior fazendo as seguintes melhorias.
Vamos exemplificar como deve ser o resultado final, após estas alterações: Ao carregar a página command2.asp, obtemos o resultado indicado na Figura 7.13
Vamos supor que o usuário selecionou “Brazil”, na lista de países e 1994 na lista Ano. Ao clicar no botão Pesquisar serão exibidos apenas os Pedidos o país e ano selecionados, conforme indicado na Figura 7.14.
Para fazer uma nova pesquisa, basta selecionar novos critérios e clicar no botão Pesquisar. Em caso de dificuldades na criação da nova versão do nosso exemplo é só entrar em contato pelo e-mail: juliobattisti@hotmail.com. Mas antes de entrar em contato procure revisar os conceitos já apresentados até o momento. Praticar é importante para fixar os diversos conceitos apresentados. |
||||||||||||||||||||||||||||||||||||||||||||||||
« Lição anterior | Δ Página principal | ¤ Capítulos | Próxima lição » |
CURSO PROFISSIONALIZANTE DE INFORMÁTICA |
São 68 Cursos -
3440 Vídeo Aulas - 396:07 horas |
Domine Todos os Recursos de Informática Exigidos pelo Mercado de Trabalho, Através de Exemplos Práticos, Completos e Úteis, Detalhadamente Explicados - Passo a Passo |
Para Todos os Detalhes, Acesse:
https://juliobattisti.com.br/informatica-curso-completo-1v.asp |
MEGA FORMAÇÃO EM INFRAESTRUTURA DE TI (Online, Vitalício, Prático e Atualizado)! |
|
NÃO PROCURE VAGAS, SEJA PROCURADO! |
Para Todos os Detalhes, Acesse:
https://juliobattisti.com.br/curso-infra-ti.asp
|
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-2025 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI