Você está na página 1de 161

APOSTILA DE ASP

AUTOR: ISRAEL MARQUES CAJA JNIOR

CURSO DE ASP

O que ASP ?
As ASP (Active Server Pages - Pginas de Servidor Ativas) so um ambiente para programao por scripts no servidor, que voc pode usar para criar pginas dinmicas, interativas e de alta performance. Como as pginas ASP, os scripts rodam no servidor e no no cliente. o prprio servidor que transforma os scripts em HTML padro, fazendo com que qualquer browser do mercado seja capaz de acessar um site que usa ASP. Entre os recursos que podem ser implementados via ASP, podemos citar: Programao em VBScript ou JScript Acesso a banco de dados Sesses (persistncia de informaes no servidor) ASP surgiu juntamente com o lanamento do Internet Information Server 3.0. Esta uma soluo Microsoft, que exige que o seu servidor precisa rodar um sistema operacional da Microsoft (Windows 95 ou NT). Os seguintes servidores suportam o uso de pginas ASP: Microsoft Internet Information Server verso 3.0 no Windows NT Server Microsoft Peer Web Services verso 3.0 no Windows NT Workstation Microsoft Personal Web Server no Windows 95 ou Windows 98 A grande vantagem, porm, que existe esta exigncia apenas do lado do servidor. No lado do cliente, voc pode utilizar qualquer browser, mesmo os que no suportam VBScript (como os da Netscape).

----- 2 -----

CURSO DE ASP

Vantagens do ASP
Independncia do browser: ASP pode rodar pginas complexas no servidor e enviar somente os resultados para o cliente. Pginas x Bancos de Dados: Permite visualizar, atualizar e adicionar

informaes nos servidores SQL Segurana do cdigo fonte: Como o Servidor retorna somente o resultado html, o cdigo fonte (lgica) fica preservada. Linguagens: O ASP pode utilizar de comandos em VBScript, JavaScript e Html.

Como funciona uma pgina ASP

1. browser do usurio faz a chamada a uma pgina .ASP localizada no servidor web. 2. servidor l a pgina ASP e inicia o processamento. 3. A pgina processada pelo servidor, executando os scripts localizados na pgina. 4. Como resultado do processamento, sai uma pgina HTML, que enviada para o browser do usurio (5). ----- 3 -----

CURSO DE ASP

Itens a verificar no seu servidor


Para utilizar ASP em suas homepages, voc precisa atender aos requisitos acima. Uma situao ideal utilizar o Microsoft Visual InterDev (parte do Microsoft Visual Studio) para editar as pginas, mas isso no necessrio. Voc pode chegar l apenas usando o Notepad. Antes de mais nada: Certifique-se que o computador que hospedar as pginas roda Windows NT Server, Windows NT Workstation, Windows 95 ou Windows 98. Certifique-se que voc possui o Microsoft Internet Information Server

(IIS), o Peer Web Services (PWS) ou o Personal Web Server (PWS, tambm) instalado neste computador. O Windows NT 4.0 vem com a verso 2.0 do IIS, que no suficiente. Se voc pretende usar os recursos de acesso a bancos de dados, certifiquese os dados esto acessveis atravs de ODBC. Voc precisar de um driver de ODBC instalado e funcionado no servidor. Se voc optou por usar o Access, instale uma verso 7.0 (95) ou superior no Servidor. Isto garantir a presena do driver ODBC e facilitar a criao dos seus bancos de dados. Se voc preferir utilizar o SQL Server, garanta que o driver ODBC est instalado. Se voc pretende usar os recursos de acesso a bancos de dados, verifique a existncia de uma "Fonte de Dados" ODBC para este banco de dados. Isto feito usando a opo "ODBC" do "Painel de Controle" do Windows. Se for usar o SQL Server, crie um usurio com direito para acessar este banco de dados. Crie um diretrio para guardar as pginas ASP no seu servidor. Inclua este diretrio na lista do IIS/PWS, dando direito de "Execute/Execuo". As pginas ASP s podem ser rodadas a partir de um diretrio com o direito de "Execuo". No habilite a opo de "Read/Leitura", para aumentar sua segurana neste diretrio. Garantidos os itens acima, voc pode criar sua primeira pgina ASP.

----- 4 -----

CURSO DE ASP

Perguntas comuns sobre ASP


Que linguagens script so suportas pelas ASP? H suporte nativo para JScript (o JavaScript da Microsoft) e VBScript. Existem plug-ins ActiveX para dar suporte para outras linguagens como REXX, PERL, and Python. Que browsers suportam ASP? Todos os browsers suportam ASP. Isto acontece pelo fato das pginas ASP serem processadas pelo servidor. O que o cliente recebe somente cdigo HTML padro. As pginas ASP so capazes de guardar estados? Sim. Aplicaes ASP podem armazenar dados que so mantidos durante toda uma sesso. Desta forma, um usurio pode fornecer seu nome somente uma vez em uma pgina e as demais pginas podem obter este dado automaticamente. Este recurso ideal para aplicaes de venda pela Internet. As pginas ASP oferecem segurana? Sim. O recurso ASP parte integrante do IIS (Internet Information Server), que tem sua segurana integrada com o Windows NT Server. fcil restringir o acesso a pginas ASP usando os esquemas de autenticao do IIS (senha bsica da Web, senha do NT ou certificados de cliente). ainda possvel dar segurana aos dados transmitidos usando SSL. Que bancos de dados podem ser acessados usando ASP? Uma aplicao ASP pode ser usada com qualquer banco de dados compatvel com ODBC. Isto inclui dados do Access, Microsoft SQL Server, Oracle, Sybase, Informix, DB2, entre outros. ASP melhor que CGI? ASP lhe d todos os recursos de aplicaes CGI de uma forma mais fcil e mais robusta. Com ASP, bem mais fcil criar conexes entre o browser e os dados em formatos normalmente incompatveis com HTML, como bancos de dados. ----- 5 -----

CURSO DE ASP

ASP mais robusto por no criar um processo no servidor para cada pedido do usurio, como acontece com o CGI. Usando ASP ao invs de CGI, um servidor pode atender a um grande nmero de pedidos de usurios de forma mais rpida e usando menos memria. Alm disso, criar pginas ASP em geral muito mais fcil do que criar aplicaes CGI. ASP melhor do que Perl? Perl apenas uma linguagem script e no uma ferramenta de desenvolvimento. Usando ASP, voc tem objetos predefinidos para criar aplicaes complexas, como os que permitem o acesso a bancos de dados ou o uso de sesses. Alm do mais, ASP pode utilizar Perl como linguagem script, se voc desejar, usando plug-ins ActiveX de terceiros.

OBJETOS DO ASP
Assim como qualquer linguagem, o ASP contm os seus respectivos objetos, e estes contm os mtodos e propriedades. OBJETO APPLICATION SESSION REQUEST RESPONSE SERVER OBJECTCONTEXT DESCRIO Contm informaes sobre aplicao Contm informaes sobre a session (cada usurio) Responsvel pelas informaes requisitadas do browser para o servidor, como variveis, por exemplo Responsvel pela comunicao server / client, ou seja, qualquer informao enviada do servidor para o browser do usurio Responsvel pela configurao de algumas funes e mtodos do servidor Trata as transaes que so gerenciadas pelo Transaction Server

MTODOS de um objeto so as aes referentes ao objeto. PROPRIEDADES de um objeto so os comportamentos referentes ao objeto.

CONTROLE DE EXECUO
As instrues que controlam as decises e os LOOPS do ASP so chamadas estruturas de controle. As mais utilizadas so as estruturas de deciso e as estruturas de loop.

----- 6 -----

CURSO DE ASP Voc usa estruturas de deciso para definir grupos de instrues que podem ou no ser executadas, dependendo do valor de uma expresso. Voc usa estruturas de loop para definir grupos de instrues que o ASP executa repetidamente.

ESTRUTURAS DE DECISO
O ASP suporta as seguintes estruturas de deciso: IF...THEN IF...THEN...ELSE SELECT CASE SINTAXE 01.....: If condio Then Instrues Explicao: SE a condio for vlida ENTO execute o bloco de instrues a seguir. Repare que nesta sintaxe no existe o END IF para fechar o IF porque executado apenas a instruo em seguida do THEN. Desta forma voc pode ter apenas uma instruo. EXEMPLO 01: If Day(Now) > 14 Then Response.Write "Estamos na 2a. quinzena do ms"

OBS.: Observe que se a data for inferior 14 ir aparecer uma pgina em branco.

EXEMPLO 02: If Hour(Now) < 12 Then Response.Write Bom Dia ! OBS.: Observe que se a hora for inferior 12 ir aparecer uma pgina em branco. SINTAXE 02 If condio Then Instrues End If

----- 7 -----

CURSO DE ASP Explicao: SE a condio for vlida ENTO execute o bloco de instrues a seguir at encontrar o END IF EXEMPLO 03: <% If Hour (Now) < 12 Then Response.Write "Bom Dia!" End If %> SINTAXE 03 Outra sintaxe que permite duas instrues, uma verdadeira e outra falsa: If condio Then Instrues 1 Else Instrues End If 2

Explicao: SE a condio for vlida ENTO execute o bloco de instrues 1, SENO execute o bloco de instrues 2. EXEMPLO 04: <% If Hour (Now) < 12 Then Response.Write "Bom Dia !" Else Response.Write "Boa Tarde !" End If ----- 8 -----

CURSO DE ASP %> EXEMPLO 05: <% If Day (Now) > 14 Then Response.Write "Estamos na 2 quinzena do ms ! " Else Response.Write " Estamos na 1 quinzena do ms ! " End If %> SINTAXE 04 Ou ainda, caso voc queira avaliar mais de uma condio voc pode usar a seguinte sintaxe:

If condio 1 Then Instrues 1 ElseIf condio 2 Then Instrues 2 Else Instrues End If Explicao: SE a condio 1 for vlida ENTO execute o bloco de instrues 1, SENO SE a condio 2 for vlida ENTO execute o bloco de instrues 2, SENO execute o bloco de instrues 3. EXEMPLO 06: <% If Month(Now) <= 4 Then 3

----- 9 -----

CURSO DE ASP Response.Write Atualmente estamos no 1o quadrimestre do ano.

ElseIf Month(Now) >= 9 Then Response.Write O ano est quase terminado, estamos no 3o quadrimestre do ano. Else Response.Write Estamos no 2o quadrimestre do ano. End If %> EXEMPLO 07: <% If Hour(Now) < 12 Then Response.Write Bom Dia ! ElseIf Month(Now) >= 18 Then Response.Write Boa Noite ! Else Response.Write Boa Tarde End If %> Exemplo 08: O exemplo a seguir exibe uma a pgina pgina IF_Question1.htm If_Question1.asp que solicita trata ao as

usurio selecionar uma opo. Logo em seguida, quando o usurio clicar no boto conferir, chamada que informaes passadas que neste caso a varivel RESPOSTA, em seguida feito um teste lgico com IF para a tomada de deciso. ----- 10 -----

CURSO DE ASP

Arquivo IF_Question1.htm <html> <head> <title> Pesquisa </title> </head> <body> <p align="center"><b><i><font color="#FF0000">USO DA INSTRUO IF </font> </i></b></p> <p><b><font size="4" color="#000080"> Na sua opinio, qual a melhor

Linguagem de Programao para a WEB ?</font></b></p> <form method="POST" action="IF_Question1.asp"> <table border="0" bgcolor="#CCFFFF" width="523"> <tr> <td width="39" align ="center"><b><input type="radio" value="1" name="Resposta"></b></td> <td width="470" ><b><font color= "#000080"> ASP </font></b></td> </tr> <tr> <td width="39" align ="center"><b><input type="radio" value="2" name="Resposta"></b></td> <td width="470" ><b><font color= "#000080"> PHP.</font></b></td> </tr> </table>

----- 11 -----

CURSO DE ASP <p><input type="submit" value="Conferir" name="B1"></p> </form>

</body> </html>

Arquivo IF_Question1.asp <% @ Language=VBscript %> <% varResposta = Request.Form("Resposta") %> <html> <head> <title> Resposta da Questo</title> </head> <body> <table border="0" width = "100%"> <% If varResposta = "1" Then %> <tr> <td width="27%"><font color="#000080" size="5"><b>ASP</b></font></td> <td width="173%"><font size="5"> Programar na WEB com ASP bem fcil e ele possue recursos bem poderosos. </font></td> </tr> <% Else %> <tr> ----- 12 -----

<td <b>PHP</b></font></td>

width="27%"><font

CURSO DE ASP color="#FF0000" size="5">

<td width="173%"><font size="5"> Programar na WEB com PHP tambm seria uma tima soluo, porm ele mais complexo que o ASP. </font></td> </tr> <% End If %> </table> </body> </html>

Explicao: a varivel varResposta recupera o contedo do objeto RESPOSTA, contido na pgina em que foi feita a chamada, ou seja, IF_Question1.htm, ento, varResposta avaliado no IF para indicar o caminho a ser tomado de acordo com a lgica do programa. ----- 13 -----

CURSO DE ASP

SELECT CASE
A instruo Select Case funciona da mesma forma que o IF, porm o cdigo fica mais claro, inteligvel, fcil de dar manuteno e flexvel.

Sintaxe 05:

Select Case expresso Case expresso 1 Instrues 1 Case expresso 2 Instrues 2 Case expresso 3 Instrues 3 Case Else Instrues 4 End Select Exemplo 09: <% Select Case Hour(Now) Case 0,1,2,3,4,5,6,7,8,9,10,11 Response.Write Bom Dia ! Case 12,13,14,15,16,17

----- 14 -----

CURSO DE ASP Response.Write Boa Tarde !

Case Else Response.Write Boa Noite ! End Select %> Explicao: Neste caso a expresso ir conter o contedo da hora do servidor Hour(Now). Em seguida, ir ser testado em cada um dos Cases at encontrar o vlido, ou seja, no Case 0,1,2,3,4,5,6,7,8,9,10,11 vale de 0 11, no Case 12,13,14,15,16,17 vale de 12 17 e se no for nenhum dos Cases acima, ele ir para o Case Else.

Exemplo 10: <% @Language = VBScript %> <% varMes = Month(Date) Select Case varMes Case 1,2,3 Response.Write Primeiro trimestre do ano de & Year(Date) Case 4,5,6 Response.Write Segundo trimestre do ano Case 7 Response.Write Estamos no Ms & varMes Case 8,9,10,11 Response.Write O ms atual est entre Agosto e Novembro Case Else Response.Write Este o ltimo ms do ano, aproveite !!! End Select %> de & Year(Date)

----- 15 -----

CURSO DE ASP Explicao: A varivel varMes retorna o ms da data atual e o Select Case varMes avalia qual o ms retornado, ento, cada Case avalia o contedo de varMes e exibe a mensagem correspondente.

Exemplo 11: O exemplo a seguir exibe uma pgina SelectCase_Question1.htm que solicita ao usurio selecionar uma opo. Em seguida, quando o usurio clicar no boto CONFERIR chamada a pgina SelectCase_Question1.asp que trata as informaes passadas neste caso a varivel RESPOSTA. A partir de ento, feita s seleo do contedo desta varivel com o Select Case e que decide qual o caminho tomar. Arquivo SelectCase_Question1.htm <html> <head> <title>Qual a melhor linguagem de Programao atualmente no Mercado para WEB</title> </head> <body> <p align="center"> <b> <i> <font color="#000080"> USO DA INSTRUO SELECT CASE </FONT></i></b></p> <p><b><font color="#800000" size ="4"> Qual Programao Voltada para WEB ? </font></b></p> a Melhor Linguagem de

<form method="POST" action="SelectCase_Question1.asp"> <table border="0" bgcolor="#CCFFFF" width="239"> <tr> <td width="39" align="center"><b><input name="Resposta"></b></td> type="radio" value="1"

<td width="186"><b><font color="#000080"> ASP - Active Server Pages </font></b></td> </tr> <tr> <td width="39" align="center"><b><input name="Resposta"></b></td> ----- 16 ----type="radio" value="2"

<td width="186"><b><font </font></b></td> </tr>

color="#000080">

VB

CURSO DE ASP - Visual Basic

<tr> <td width="39" align="center"><b><input name="Resposta"></b></td> <td width="186"><b><font </font></b></td> </tr> </table> <p><input type="submit" value="Conferir" name="B1"></p> <p>&nbsp;</p> </body> </html> Arquivo SelectCase_Question1.asp <% @ Language=VBscript %> <% varResposta= Request.Form("Resposta") %> <html> <head> <title>Resposta da Questo</title> </head> <body> <table border="0" width="100%"> <% Select Case varResposta Case "1" %> <tr> ----- 17 ----type="radio" SQL value="3" Server

color="#000080">

SQL

CURSO DE ASP <td width = "27%"><font color="#000080" size="5"> <b> CERTO </b> </font> </td> <td width = "173"><font size="5"><b>Se voc for desenvolver aplicaes WEB, o ASP uma excelente ferramenta </b></font></td> </tr> <% Case "2" %> <tr> <td width = "27%"><font color="#000080" size="5"> <b> ERRADO </b> </font> </td> <td width </b></font></td> </tr> <% Case "3" %> <tr> <td width size="5"><b>ERRADO</b></font></td> = "27%"><font color="#000080" = "173"><font size="5"><b>O VB bom para Desktop

<td width = "173"><font size="5"><b>O SQL apenas um banco de dados </b></font></td> </tr> <% End Select %> </table> </body> </html>

----- 18 -----

CURSO DE ASP

Explicao: a varivel varResposta recupera o contedo do objeto RESPOSTA, contido na pgina em que ento, foi feita a chamada, avaliado no ou CASE seja, para SelectCase_Question1.htm, varResposta

indicar o caminho a ser tomado de acordo com a lgica do programa.

LOOPS
Loops so utilizados quando necessrio percorrer n vezes um bloco de instrues. O exemplo mais prtico quando se l um conjunto de dados de um banco de dados e aplica-se uma instruo para esse bloco de registros.

FOR NEXT
um loop com um nmero definido de vezes de execuo

----- 19 -----

CURSO DE ASP SINTAXE: For varivel = incio to fim Step (passo) Instrues Exit For Next EXEMPLO 11 <html> <head> <title> Exemplo 11 </title> </head> <body> Veja o resultado: <br> <% varContador=0 For varContador = 0 to 5 Response.Write "teste com FOR NEXT <br>" Next %> </body> </html>

----- 20 -----

CURSO DE ASP

EXPLICAO: Ir exibir a mensagem 06 vezes, ou seja, quando o loop comea a varivel varContador vale 0 e a cada NEXT incrementado 1 na varivel e quando chegar no final (05) o loop encerrado EXEMPLO 12 <html> <head> <title> Exemplo 12 </title> </head> <body> <% varContador=0 For varContador = 0 to 10 Response.Write "Estou dentro do loop contando at " & varContador & "<br>" Next %> </body> ----- 21 -----

CURSO DE ASP </html>

EXPLICAO: Este exemplo exibe no browser a mensagem junto com o contedo da varivel varContador acompanhando o LOOP. EXEMPLO 13 <html> <head> <title> Exemplo 13 </title> </head> <body> <% varContador=0 For varContador = 10 to 250 Step 15 Response.Write "Estou usando o <b> passo positivo</b>, agora vale " & varContador & "<br>" Next %> ----- 22 -----

CURSO DE ASP </body> </html>

EXPLICAO: Este loop ir exibir a mensagem concatenada com o valor da varivel varContador com intervalos de 5 em 5, estamos usando um incremento ou passo em uma estrutura de loop For Next. EXEMPLO 14 <html> <head> <title> Exemplo 14 </title> </head> <body> <% varContador=0 For varContador = 100 to 25 Step -5 Response.Write "Estou usando o <b> passo negativo</b>, agora vale " & varContador & "<br>" Next ----- 23 -----

CURSO DE ASP %> </body> </html>

EXPLICAO: Possui a mesma estrutura do anterior, porem o loop negativo, inicia em 100 e termina em 25 com intervalos de 5. EXEMPLO 15 <html> <head> <title> Exemplo 15 </title> </head> <body> <% varContador=0 For varContador = 0 to 50 If varContador = 10 then

----- 24 -----

Response.Write " Agora SIM fui abandonado "<br>" Exit For Else "<br>" Response.Write " Ainda NO fui abandonado -

CURSO DE ASP " & varContador &

" & varContador &

End If Next %> </body> </html>

EXPLICAO: Em alguns casos existe a necessidade de tratar as instrues dento do For e conforme a situao, preciso abandonar o For, para isso existe o comando EXIT FOR.

WHILE
O loop WHILE executa um bloco de instrues conforme uma condio definida.

----- 25 -----

CURSO DE ASP SINTAXE: While condio Instrues Wend EXEMPLO 16 <html> <head> <title> Exemplo 16 </title> </head> <body> <% varContador = 0 While varContador <= 5 Response.Write varContador Response.Write " - teste do while <br>" varContador = varContador + 1 Wend %> </body> </html> Explicao: A varivel varContador iniciada valendo 0, entrando no Loop pela primeira vez a varivel recebe a instruo de funcionar enquanto for menor ou igual a 5 e logo em seguida incrementado 1 no valor da varivel, o loop ser encerrado quando a condio no for mais verdadeira.

----- 26 -----

CURSO DE ASP

Exemplo 17 <html> <head> <title> Exemplo 17 </title> </head> <body> <% varContador = 0 While varContador <= 5 Response.Write " Ol pessoal, como tem passado ? <br>" varContador = varContador + 1 Wend %> </body> </html>

----- 27 -----

CURSO DE ASP

Explicao: A varivel varContador iniciada valendo 0, entrando no Loop pela primeira vez a varivel recebe a instruo de funcionar enquanto for menor ou igual a 5 e logo em seguida incrementado 1 no valor da varivel, o loop ser encerrado quando a condio no for mais verdadeira.

PROCEDIMENTOS
O ASP suporta dois tipos diferentes de procedimentos: FUNCTION e SUB. A diferena que uma FUNCTION executa um cdigo e retorna alguma coisa, enquanto a SUB simplesmente executa um cdigo e no retorna nada.

FUNES
Como o ASP pode utilizar VBScript, podemos utilizar as funes do prprio Visual Basic. Existem dois tipos de funes: as internas e as desenvolvidas de acordo com a necessidade da aplicao. As internas so as que j esto disponibilizadas necessidade. junto com o VB, j as desenvolvidas so funes que existem prontas e assim precisam ser criadas em cdigo a fim de atender uma

FUNES DE INFORMAES
O objetivo das funes de informaes identificar e consistir expresses que possam estar com valores no condizentes com o escopo do aplicativo. Com isso, voc tem como avaliar todas as variveis que controlam a aplicao. Um exemplo bem prtico do uso destas funes a validao de dados em um formulrio.

----- 28 -----

CURSO DE ASP FUNO IsDate IsEmpty IsNull IsNumeric SINTAXE IsDate(expresso) IsEmpyt(expresso) IsNull(expresso) IsNumeric(express o) DESCRIO Retorna TRUE se a expresso for uma data, caso contrrio retorna FALSE Retorna TRUE se a expresso for vazia, caso contrrio retorna FALSE Retorna TRUE se a expresso for nula, caso contrrio retorna FALSE Retorna TRUE se a expresso for numrica, caso contrrio retorna FALSE

SINTAXES E EXEMPLOS

IsDate
<% varDataPagto = "aaaa" varDataPedido = "27/03/2000" If IsDate(varDataPagto) Then Response.Write "Data do Pagamento: Else Response.Write "Esta expresso no uma data" End If %> <br><br> <% If IsDate(varDataPedido) Then Response.Write "Data do Pedido: Else Response.Write "A data do pedido no uma data vlida pela funo" End If %> " & varDataPedido " & varDataPagto

IsEmpty
<% varEmail = "eu@bol.com.br" If IsEmpty(varNomeCliente) Then Response.Write "Nome do cliente no informado..." End If If Not IsEmpty(varEmail) Then Response.Write "O Email digitado : " & varEmail End If %> ----- 29 -----

CURSO DE ASP

IsNull
<% varNomeCliente= null varCodPedido = "123" If IsNull(varNomeCliente) Then Response.Write "Nome do cliente no informado..." End If %>

IsNumeric
<% varSalario = 1200 varCodPedido = "123b" If IsNumeric(varSalario) Then Response.Write varSalario * 10 End If %> <br> <% If Not IsNumeric(varCodPedido) Then Response.Write "O cdigo do pedido no um nmero: " End If %>

EXEMPLO 18 O exemplo a descritas. <html> <head> <title>Funes de Informaes</title> </head> <body> <h2> Funes de Informaes Funo IsDate</h2> ----- 30 ----seguir resume em um nico cdigo todas as funes acima

CURSO DE ASP <br> <% varDataPagto = "aaaa" varDataPedido = "27/03/2000" If IsDate(varDataPagto) Then Response.Write "Data do Pagamento: Else Response.Write "Esta expresso no uma data" End If %> <br><br> <% If IsDate(varDataPedido) Then Response.Write "Data do Pedido: Else Response.Write "A data do pedido no uma data vlida pela funo" End If %> <h2> Funo IsEmpty</h2> <br> <% varEmail = "eu@bol.com.br" If IsEmpty(varNomeCliente) Then Response.Write "Nome do cliente no informado..." End If If Not IsEmpty(varEmail) Then Response.Write "O Email digitado : " & varEmail End If %> <h2> Funo IsNull</h2> <br> <% ----- 31 ----" & varDataPedido " & varDataPagto

CURSO DE ASP varNomeCliente= null varCodPedido = "123" If IsNull(varNomeCliente) Then Response.Write "Nome do cliente no informado..." End If %> <br> <% If Not IsNull(varCodPedido) Then Response.Write "O cdigo do pedido : " & varCodPedido End If %> <h2> Funo IsNumeric</h2> <br> <% varSalario = 1200 varCodPedido = "123b" If IsNumeric(varSalario) Then Response.Write varSalario * 10 End If %> <br> <% If Not IsNumeric(varCodPedido) Then Response.Write "O cdigo do pedido no um nmero: " End If %> </body> </html> ----- 32 -----

CURSO DE ASP

FUNES DATA
O objetivo dessas funes permitir trabalhar corretamente com as diversas formas de se manipular uma data, extrair o contedo de acordo com a necessidade, facilitar a pesquisa em banco de dados. Na verdade, datas e horas so representadas por um nmero serial definido a partir de um marco, a parte inteira do nmero serial representa a data e a parte decimal, as horas. FUNO Date Day Month Year Time Hour Minute DateSerial Now EXEMPLO 19 O exemplo a seguir resume em um nico cdigo todas as funes acima SINTAXE Date Day(data) Month(data) Year(Data) Time Hour(hora) Minute(hora DateSerial(yy,mm,d d) Now DESCRIO Retorna a Data do servidor Extrai o dia de uma data Extrai o ms de uma data Extrai o ano de uma data Retorna a hora, minutos e segundos do servidor Extrai a hora de uma expresso hora Extrai o minuto de uma expresso hora Compe uma data a partir do ano, ms e dia Retorna a data e hora do servidor

descritas. <html> <head> <title> FUNES DE DATA </title> </head> <body bgcolor="#FFFFCC" font face="Verdana" size="3"><br><br> <p align ="center"><font face="Verdana" size="6" color="#000000"> TESTANDO FUNES DE DATA</font></p>

FUNO DATE FUNO DAY


<%

- retorna a data do servidor<br>

Hoje : <% Response.Write Date %><br><br> - extraia o dia de uma data<br>

varDataNasc = "02/12/1970" Response.Write "O dia atual :" & Day(Now) & "<br>" Response.Write "O dia de seu nascimento : " & Day(varDataNasc) & "<br>" %> ----- 33 -----

CURSO DE ASP <br>

FUNO MONTH
<%

- extraia o ms de uma data<br>

varDataNasc = "02/12/1970" Response.Write "O Ms atual :" & Month(Now) & "<br>" Response.Write "O Ms do seu nascimento : " & Month(varDataNasc) & "<br>" %> <br>

FUNO YEAR
<%

- extraia o ano de uma data<br>

varDataNasc = "02/12/1970" Response.Write "O Ano atual :" & Year(Now) & "<br>" Response.Write "O Ano do seu nascimento : " & Year(varDataNasc) & "<br>" %> <br>

FUNO TIME
<%

- retorna a hora minutos e segundos do servidor<br>

Response.Write "A hora completa do Servidor : " & Time %> <br> <br>

FUNO HOUR
<%

- extrai a hora de uma expresso hora<br>

Response.Write "A hora atual do Servidor : " & Hour(Time) %> <br> <br>

FUNO MINUTE
<%

- extrai os minutos de uma expresso hora<br>

Response.Write "Os minutos no Servidor so: " & Minute(Time) %> <br> <br>

FUNO SECOND
<%

- extrai os minutos de uma expresso hora<br>

Response.Write "Os Segundos no Servidor so: " & Second(Time) %> <br> ----- 34 -----

CURSO DE ASP <br>

FUNO DATESERIAL
ano<br> <% varDia= 02 varMes= 12 varAno= 1970

- compe uma data a partir do dia - ms -

Response.Write "Dia: " & varDia & " Ms: " & varMes & " Ano: " & VarAno & "<br>" Response.Write %> <br> <br> "A data formada com o DateSerial : " & DateSerial(varAno, varMes, VarDia)

FUNO NOW
<%

- retorna a data e a hora do servidor<br>

Response.Write "A data e a hora do servidor : " & Now %> <br> </body> </html>

FUNES DE TEXTO
O objetivo das funes de texto a manipulao dos dados em nvel de formatao e pesquisa em banco de dados, permitindo restringir o universo de pesquisa, ou seja, se o usurio informar qualquer tipo de texto, cabe ao programador identificar, tratar e pesquisar tal informao. Com isso, o aplicativo fica muito mais seguro e consistente. FUNO LCase UCase Left Right Mid Trim Len SINTAXE LCase(expresso) Ucase(expresso) Left(expresso,n) Right(expresso,n ) Mid(expresso, inicial, tamanho) Trim(expresso) Len(expresso) DESCRIO todos os caracteres todos os caracteres caracteres a partir caracteres a partir

Converte Converte Extrai n Extrai n

para minsculo para maisculo da esquerda da direita

Extrai n caracteres de acordo com o tamanho especificado a partir da posio inicial da expresso Extrai todos os espaos em branco tanto no incio como no final da expresso Retorna o tamanho da expresso

----- 35 -----

CURSO DE ASP

EXEMPLO 20
O exemplo a seguir resume em um nico cdigo todas as funes acima descritas. <html> <head> <title> FUNES DE TEXTO</title> </head> <body> <h2>

Funo LCase
<%

</h2>

varNome = "CURSO DE ASP" Response.Write LCase("CURSO DE ASP ") Response.Write "<br>"& LCase(varNome) %> <h2>

Funo UCase
<%

</h2>

varEndereco = "rua dos araas, 32 - lagoa" Response.Write UCase("curso de asp") Response.Write "<br>"& UCase(varEndereco) %> <h2>

Funo Left
<%

</h2>

varCidade = "So Paulo" Response.Write Left("Interner para todos", 8) Response.Write "<br>"& Left(varCidade, 3) %> <h2>

Funo Right
<%

</h2>

varLocal = "Funes de texto com ASP" Response.Write Right("Interner para todos", 8) Response.Write "<br>"& Right(varLocal, 20) ----- 36 -----

CURSO DE ASP %> <h2>

Funo Mid
<%

</h2>

varSede = "Federao Paulista de Beach Soccer" Response.Write mid("Colgio Paulista - COPI", 9,10) Response.Write "<br>"& Mid(varSede, 11, 4) %> <h2>

Funo Trim
<% varTorneio = " "

</h2>

I Torneio Colegio

Internacional de Xadrez Paulista -

Response.Write Trim(" COPI")

Response.Write "<br>"& Trim(varTorneio) %> <h2>

Funo Len
<%

</h2>

varTamanho = " Frum de Tecnologia " Response.Write Len("este texto deve ter 33 caracteres") Response.Write "<br>"& Len(varTamanho) %> </body> </html>

----- 37 -----

CURSO DE ASP

OBJETO REQUEST
O Objeto Request o responsvel pelas informaes requisitadas do browser para o servidor, o mais utilizado quando se lida com formulrio, afinal, esse objeto que recupera o valor das variveis passadas pelas pginas. Quando se fala do objeto Request associa-se um formulrio automaticamente. Formulrio uma pgina bem desenhada contendo controles de entrada de dados, podendo ser uma textbox, uma listbox, radio buttom, check buttom e botes de execuo. Todo campo definido em um formulrio recebe algumas caractersticas prprias de cada controle, todos tm um nome. Dar um nome a um controle requer um bom senso para facilitar a programao. Existem dois mtodos do objeto Request para capturar o contedo das

variveis. MTODO GET POST RECUPERAR COM Request.QueryString Request.Form DESCRIO Recupera o valor de uma varivel atravs de um link Recupera o valor de uma varivel atravs de um controle

passada passada

Quando se recupera o contedo de uma varivel, existem algumas aplicaes a serem discutidas de acordo com a situao. Se voc no tem nada a esconder do navegador que est operando o browser ou se for um link, ter de passar via Request.QueryString. Caso precise esconder o contedo com uma senha, por exemplo, ter que usar o mtodo Request.Form, assim os contedos so passados para as pginas e no aparece na URL. MTODO GET POST IMPLICAO O contedo da varivel aparece na URL, tamanha da URL Permite passar valores ocultos e no aparece na URL

Sintaxe de um formulrio <FORM ACTION=Pgina ASP METHOD= Mtodo desejado> Exemplo 21 Existem dois arquivos, Envia.asp e Recebe.asp que a pgina ASP que recupera as variveis e trata-as no cdigo. Note na pgina Envias.asp a linha do FORM. No se assuste com os comandos e instrues, apenas ilustram a pgina htm com um formulrio. ----- 38 -----

CURSO DE ASP

Arquivo ENVIA.ASP
<html> <head> <title> OBJETO REQUEST.QUERYSTRING</title> </head> <body bgcolor="#fffcc8"> <div align="center"> <table <tr> <td width="100%" height="241"> <table <tr> <td bgcolor="#D73E36" align="center" height="21"> <b><font size="4" color="#FFFFFF">Request QueryString - Mtodo Get </font></b> </td> </tr> <tr> <td height="7"> <p align="center">ESTE FORMULRIO IR POSTAR ALGUNS CONTROLES PARA UMA PGINA ASP </p> </td> </tr> <tr> <td align="center" height="216"> <form method="GET" action="recebe.asp" name="Form1"> <div align="center"> <table border="0" width="440" cellspacing="0" cellpadding="5"> <tr> <td </font> </td> </tr> <tr> <td align="center" colspan="2"> ----- 39 ----align="center" colspan="2"> <font size="2" face="Verdana"><b>Preencha os Campos abaixo e cliqe no link Enviar </b> border="0" width="100%" cellspacing="0" cellpading="8" bgcolor="#FFFFFF" height="292"> border="0" width="620" bgcolor="#D73E36" cellspacing="0" cellpading="2" height="245">

<table

border="0" <tr>

width="394"

CURSO DE ASP bgcolor="#FFFCC8" cellspacing="0"

cellpading="3"> <td align="right"><b><font face="Verdana" size="1"> Nome: </font></b></td> <td> <input type="text" name="nome" size="20"> </td> </tr> <tr> <td align="right"><b><font face="Verdana" size="1"> Salrio: </font></b></td> <td> <input type="text" name="salario" size="20"> </td> </tr> </table> </td> </tr> <tr> <td align="left" colspan="2"> <div align="center"> <input type="submit" name="submit" value="Enviar"> </div> </td> </tr> </table> </div> </form> </td> </tr> </table> </td> </tr> </table> &nbsp; </div> </body> </html> ----- 40 -----

CURSO DE ASP

Arquivo RECEBE.ASP
<% 'Programador 'Data 'Descrio Option Explicit Dim varNome, varSalario varNome= Request.QueryString("Nome") varSalario= Request.QueryString("Salario") %> <Html> <head> <title> Informaes Recuperadas com Request.QueryString </title> </head> <body bgcolor="#FFFCC8" link="#000000" vlink="#000000" alink="#000000"> <div align="center"> <table border="0"width="350" cellspacing="0" cellpadding="3"> <tr> ----- 41 ----: Israel Marques Caja Jnior : 08/05/2002 : Recuperando dados com Request.QueryString

CURSO DE ASP <td width="100%"> <div align="center"><b><br> <br> Informaes digitadas no formulrio</b><br> </div> </td> </tr> <tr> <td width="100%"> <table cellpadding="3"> <tr> <td size="1">Nome:</font></b></td> <td> <%=varNome %></td> <td size="1">Salrio:</font></b></td> <td> <%=varSalario %></td> </table> </tr> </table> <br><b><a href="javascript:history.go(-1)">Voltar</a></b> </div> </body> </html> align="right"><b><font face="verdana" align="right"><b><font face="verdana" border="0" width="394" bgcolor="#FFFCC8" cellspacing="1"

----- 42 -----

CURSO DE ASP

MTODO POST
Esse mtodo obriga o browser a postar todas as variveis no corpo do HTTP e no na URL. Sendo assim, voc no tem limites de tamanho, pois pode postar quantas variveis forem necessrias.

EXEMPLO 22:
Existem dois arquivos: CADASTRO.HTM que uma pgina htm normal sem nenhuma linha de ASP e CADASTROPOST.ASP que a pgina ASP que recupera as variveis e trata-as no cdigo. ARQUIVO CADASTRO.HTM <html> <head> <title>CADASTRO REQUEST.FORM</title> </head> <body Nome: <input type="text" name = "nome"><br><br> Endereo: <input type="text" name = "endereco"><br><br> <input type="submit" value = "enviar"><br><br> </form> </body> </html> bgcolor="#FFFCC8"> <form method="POST" action="cadastropost.asp">

----- 43 -----

CURSO DE ASP

ARQUIVO CADASTROPOST.ASP
<html> <head> <title> RECUPERAO DOS DADOS DO CADASTRO </title> </head> <body bgcolor="#FFFCC8"> <div> Os dados preeenchidos na pgina anterior foram: </div> <% Response.Write "<br><br>Nome: <b>" & Request.Form("nome") & "</b>" Response.Write "<br><br>Endereo: <b>" & Request.Form("endereco") & "</b>" %> </body> </html>

----- 44 -----

CURSO DE ASP EXEMPLO 23 Existem dois arquivos: REQUESTFORM.HTM que uma pgina htm normal sem nenhuma linha de ASP, REQUESTFORM.ASP, que a pgina ASP que recupera as variveis e trata-as no cdigo.

ARQUIVO REQUESTFORM.HTM
<html> <head> <title>Obejto Request.Form </title> </head> <body bgcolor="#FFFCC8"> <div align="center"> <table <tr> <td width="100%" height="168"> <table <tr> <td bgcolor="#D73E36" align="center" height="21"> <b><font size="4" color="#FFFFFF"> Request Form - mtodo POST</font></b> </td> </tr> <tr> <td height="1"><p align="center"> Este formulrio ir postar alguns controle para uma pgina ASP</p> </td> </tr> <tr> <td alig="center" height="261"> <form method="POST" action="requestform.asp" name="form1"> <div align="center"> <table border="0" width="440" cellspacing="0" cellpadding="5"> <tr> <td align="center"> <font size="2" face="verdana"> <b> Preencha os campos abaixo e clique no boto Enviar </b></font> </td> ----- 45 ----border="0" width="100%" cellspacing="0" cellpadding="8" bgcolor="#FFFFFF" height="301"> border="0" width="620" bgcolor="#D72E36" cellspacing="0" cellpadding="2" height="172">

CURSO DE ASP </tr> <tr> <td align="center"> <table border="0" width="394" bgcolor="#FFFCC8" cellspacing="0" cellpadding="3"> <tr> <td size="1">Nome:</font></b></td> <td><input type="text" name="nome" size="20" class="campo"></td> <td size="1">Idade:</font></b></td> <td><select size="1" name="idade"> <option value="00-10">0-10</option> <option value="11-10">11-10</option> <option value="21-30" selected>21-30</option> <option value="31-40">31-40</option> <option value="41-50">41-50</option> <option value="51-60">51-60</option> <option value="+ de 60">+ de 60</option> </select></td> </tr> <tr> <td size="1">Cidade:</font></b></td> <td><input type="text" name="cidade" size="20" class="campo"></td> <td size="1">Estado:</font</b></td> <td><select name="UF" size="1" class="campo"> <option value="UF">UF</option> <option value="AC">AC</option> <option value="AL">AL</option> <option value="AM">AM</option> <option value="AP">AP</option> <option value="BA">BA</option> <option value="CE">CE</option> <option value="DF">DF</option> <option value="ES">ES</option> align="right"><b><font face="verdana" align="right"><b><font face="verdana" align="right"><b><font face="Verdana" align="right"><b><font face="verdana"

----- 46 -----

CURSO DE ASP <option value="GO">GO</option> <option value="MA">MA</option> <option value="MG">MG</option> <option value="MS">MS</option> <option value="MT">MT</option> <option value="PA">PA</option> <option value="PB">PB</option> <option value="PE">PE</option> <option value="PI">PI</option> <option value="PR">PR</option> <option value="RJ">RJ</option> <option value="RN">RN</option> <option value="RO">RO</option> <option value="RR">RR</option> <option value="RS">RS</option> <option value="SC">SC</option> <option value="SP">SP</option> <option value="SE">SE</option> <option value="TO">TO</option> <select></td> </tr> <tr> <td align="right"><b>Senha:&nbsp;</b></td> <td> <p align="left"> <input type="password" name="senha" size="7" value=""></p> </td> </tr> </table> </td> </tr> <tr> <td align="left"> <p align="center"> &nbsp; class="campo"></p> </td> <input type="submit" value="Enviar" name="Enviar"

----- 47 -----

CURSO DE ASP </tr> </table> </div> </form> </td> </tr> </table> </td> </tr> </table> &nbsp; </div> </body> </html>

ARQUIVO REQUESTFORM.ASP
----- 48 -----

CURSO DE ASP <% 'Programador 'Data 'Descrio Option Explicit Dim varNome, varCidade, varSenha, varIdade, varEstado varNome= Request.Form("nome") varCidade= Request.Form("cidade") varSenha= Request.Form("senha") varIdade= Request.Form("idade") varEstado= Request.Form("uf") %> <html> <head> <title>##### RECUPERAO DOS DADOS DO CADASTRO #####</title> </head> <body bgcolor="#FFFCC8"> <div> Os dados preenchidos na pgina anterior so:</div> <% Response.Write "<br><br>Nome: <b>" & varNome & "</b>" Response.Write "<br><br>Cidade: <b>" & varCidade & "</b>" Response.Write "<br><br>senha: <b>" & varSenha & "</b>" Response.Write "<br><br>idade: <b>" & varIdade & "</b>" Response.Write "<br><br>Estado: <b>" & varEstado & "</b>" %> </body> </html> : Israel Marques Caja Jnior : 08/05/2002 : Recuperando dados com Request.Form

----- 49 -----

CURSO DE ASP

EXEMPLO 24
Existem dois arquivos: Pedidos.htm que uma pgina htm normal sem nenhuma linha de ASP e PedidosForm.asp que a pgina ASP que recupera as variveis e trata-as no cdigo. ARQUIVO PEDIDOS.HTM <html> <head> <title> Pedidos - Obejto Request.Form </title> </head> <body bgcolor="#FFFCC8"> <div align="center"> <table <tr> <td width="100%" height="168"> <table <tr> <td bgcolor="#D73E36" align="center" height="21"> <b><font size="4" color="#FFFFFF"> Request Form - mtodo POST </font></b> ----- 50 ----border="0" width="100%" cellspacing="0" cellpadding="8" bgcolor="#FFFFFF" height="301"> border="0" width="620" bgcolor="#D73E36" cellspacing="0" cellpadding="2" height="172">

CURSO DE ASP </td> </tr> <tr> <td height="33"> <p align="center"> Este formulrio ir postar alguns controles para uma pgina ASP </p> </td> </tr> <tr> <td align="center" height="261"> <form method="POST" action="pedidosform.asp" name="Form1"> <div align="center"> <table border="0" width="440" cellspacing="0" cellpading="5"> <tr> <td align="center"> <font size="2" face="verdana"><b>Preencha os campos abaixo e clique no boto enviar</b></font> </td> </tr> <tr> <td align="center"> <table border="0" width="404" bgcolor="#FFFCC8" cellspacing="0" cellpadding="3"> <tr> <td align="right" width="118"><b><font face="Verdana" size="1">Nome:</font></b></td> <td width="138" colspan="3"><input type="text" name="nome" size="20" class="campo"></td> </tr> <tr> <td align="right" width="118"><b><font face="Verdana" size="1">Valor do Pedido</font></b></td> <td width="138" colspan="3"><input type="text" name="vrPedido" size="20" class="campo"></td> </tr> <tr> <td align="right" width="118"><b><font face="Verdana" size="1">Estado:</font></b></td> ----- 51 -----

CURSO DE ASP <td width="138" colspan="3"><p align="left"><select name="UF" size="1" class="campo"> <option value="UF">UF</option> <option value="AM">AM</option> <option value="ES">ES</option> <option value="GO">GO</option> <option value="MS">MS</option> <option value="PR">PR</option> <option value="RS">RS</option> <option value="SC">SC</option> <option value="SP">SP</option> </select></p> </td> </tr> <tr> <td align="right" width="118"><b><font face="Verdana" size="1">Data do Pedido:</font></b></td> <td width="71"> <select name="diaPedido" size="1" class="campo"> <option selected value="Dia">dia</option> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <option value="04">04</option> <option value="05">05</option> <option value="06">06</option> <option value="07">07</option> <option value="08">08</option> <option value="09">09</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> ----- 52 -----

CURSO DE ASP <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> </select> </td> <td width="69"> <select name="mesPedido" size="1" class="campo"> <option selected value="ms">Ms</option> <option value="01">Jan</option> <option value="02">Fev</option> <option value="03">Mar</option> <option value="04">Abr</option> <option value="05">Mai</option> <option value="06">Jun</option> <option value="07">Jul</option> <option value="08">Ago</option> <option value="09">Set</option> <option value="10">Out</option> <option value="11">Nov</option> <option value="12">Dez</option> </select> </td> <td width="87"> <input type="text" name="anoPedido" size="7" maxlength="4" value="ano"> </td> </tr> </table> ----- 53 -----

CURSO DE ASP </td> </tr> <tr> <td align="left"> <p align="center"> &nbsp;<input type="submit" value="Enviar" name="Enviar" class="campo"></p> </td> </tr> </table> </div> <form> </td> </tr> </table> </td> </tr> </table> &nbsp; </div> </body> </html>

----- 54 -----

CURSO DE ASP

ARQUIVO PEDIDOSFORM.ASP <% 'Programador 'Data 'Descrio ' selecionado Option Explicit Dim varNome, varPedido, varDia, varMes, varAno, varUf, varDataPedido Dim varFrete varNome varDia varMes varAno varUf = Request.Form("Nome") = Request.Form("diaPedido") = Request.Form("mesPedido") = Request.Form("anoPedido") = Request.Form("UF") = FormatDateTime(varDia & "/" & varMes & "/" & varPedido = Request.Form("vrPedido") : Israel Marques Caja Jnior : 13/05/2002 : Recuperando dados com Request.Form Calcular o valor do Frete de acordo com o Estado

varDataPedido varAno,vbShortDate)

Select Case varUF ----- 55 -----

CURSO DE ASP Case "AM" , "ES" varFrete = varPedido * 0.1 Case "GO" , "MS" varFrete = varPedido * 0.12 Case "PR" , "RS" , "SC" varFrete = varPedido * 0.09 Case "SP" varFrete = varPedido * 0.125 End Select %> <html> <head> <title> OBJETO REQUEST.FORM </title> </head> <body bgcolor="#FFFCC8"> <div align="center"> <table <tr> <td width="100%" height="168"> <table <tr> <td bgcolor="#D73E36" align="center" height="21"> <b><font size="4" color="#FFFFFF">Recuperando dados do form Confira !!!</font></b> </td> </tr> <tr> <td align="center"> <table border="0" width="404" bgcolor="#FFFCC8" cellspacing="0" cellpadding="3"> <tr> <td align="right" width="118>"<b><font face="Verdana" size="1">Nome: </font></b></td> <td width="138"><% =varNome %></td> </tr> ----- 56 ----border="0" width="100%" cellspacing="0" cellpadding="8" bgcolor="#FFFFFF" height="301"> border="0" width="620" bgcolor="#D73E36" cellspacing="0" cellpadding="2" height="172">

CURSO DE ASP <tr> <td align="right" width="118>"<b><font face="Verdana" size="1">Valor do Pedido: </font></b></td> <td width="138"><% =varPedido %></td> </tr> <tr> <td align="right" width="118>"<b><font face="Verdana" size="1">Valor do Frete: </font></b></td> <td width="138"><% =varFrete %></td> </tr> <tr> <td align="right" width="118>"<b><font face="Verdana" size="1">Valor Total: </font></b></td> <td width="138"><% =varPedido + varFrete %></td> </tr> <tr> <td align="right" width="118>"<b><font face="Verdana" size="1">Estado: </font></b></td> <td width="138"><p align="left"><% =varUf %></p></td> </tr> <tr> <td align="right" width="118>"<b><font face="Verdana" size="1">Data do Pedido: </font></b></td> <td width="71"><% =varDataPedido %></td> </tr> </table> </td> </tr> </table> </td> </tr> </table> &nbsp; <br><b><a href="javascript:history.go(-1)">Voltar</a></b> </div> </body> </html>

----- 57 -----

CURSO DE ASP

----- 58 -----

CURSO DE ASP

GLOBAL.ASA
O arquivo global.asa um arquivo opcional de uma aplicao ASP. Podemos trabalhar sem ele, mas ele oferece muitas vantagens ao desenvolvedor. Ele um arquivo texto, utilizado para centralizar em um nico local a declarao de objetos e procedimentos do tipo Session e Application. O contedo deste no visualizado pelos usurios do site e ele deve estar arquivo

localizado no diretrio raiz da sua aplicao. O arquivo global.asa contm quatro eventos : Application_OnStart,

Application_OnEnd, Session_OnStart, Session_OnEnd. Vamos ver a seguir o que ocorre em cada um deles. Estrutura de um arquivo global.asa: <script language=vbscript runat=server> SUB Application_OnStart ' Este evento executado na primeira vez que uma pgina ASP chamada dentro' da sua aplicao.END SUB SUB Application_OnEnd ' Este evento chamado quando a aplicao termina. Isto pode ser

ocasionado' atravs da ocorrncia de um tempo limite de inatividade ou a parada do web site. END SUB SUB Session_OnStart' Este evento executado para cada usurio quando ele faz a primeira requisio' de uma pgina na aplicao. END SUB SUB Session_OnEnd' Este evento chamado quando acaba a sesso de um usurio. sesso. END SUB </script> ----- 59 ----Isto pode ser' ocasionado por um trmino explcito (mtodo session.abandon) ou pela ocorrncia' de um tempo limite de inatividade da

CURSO DE ASP

Agora que voc teve uma idia de como funciona cada evento do global.asa, o que devemos fazer colocar o nosso cdigo dentro de cada um dos eventos. Veja o exemplo abaixo: <script language=vbscript runat=server> SUB Application_OnStart ' Este evento executado na primeira vez que uma pgina ASP chamada dentro' da sua aplicao. ' Define o tempo de inatividade de cada sessoSession.Timeout=3 ' O mtodo "Lock" bloqueia a varivel Application para que possa ser atualizada' Se no a bloquearmos, ela no ser atualizada Application.Lock ' Alteramos o valor inicial da varivel de aplicao "Usuarios_Ativos" para zero Application("Usuarios_Ativos") = 0 ' Desbloqueamos a varivel Application

Application.UnLock END SUB SUB Application_OnEnd ' Este evento chamado quando a aplicao termina. Isto pode ser

ocasionado ' atravs da ocorrncia de um tempo limite de inatividade ou a parada do web site. END SUB SUB Session_OnStart ' Este evento executado para cada usurio quando ele faz a primeira requisio ' de uma pgina na aplicao.

----- 60 -----

CURSO DE ASP ' Toda vez que um usurio entrar no site, vamos incrementar a varivel' "Usuarios_Ativos" Application.Lock Application("Usuarios_Ativos")=Application("Usuarios_Ativos")+1 Application.UnLock END SUB SUB Session_OnEnd ' Este evento chamado quando acaba a sesso de um usurio. Isto pode ser ' ocasionado por um trmino explcito (mtodo session.abandon) ou pela ocorrncia ' de um tempo limite de inatividade da sesso. ' Quando um usurio abandona o site, decrementamos o valor da varivel' "Usuarios_Ativos" Application.Lock Application("Usuarios_Ativos")=Application("Usuarios_Ativos")-1 Application.UnLock END SUB </script> Este exemplo a base para a rotina de visualizao dos visitantes de um site no momento. No primeiro evento (Application_OnStart), definimos o tempo de time-out de cada sesso de usurio no site e inicializamos a varivel de aplicao "Usuarios_Ativos" em zero. Este evento s ocorre uma vez, quando a aplicao iniciada. No evento Session_OnStart, que ocorre cada vez que um novo usurio entra no site, incrementamos o valor da nossa varivel "Usuarios_Ativos". O evento Session_OnEnd ocorre no momento que um usurio abandona o site. Neste caso, isso ocasionado quando ocorre o tempo de abandono definido na propriedade Session.TimeOut no evento Application_OnStart. Na sada do site, diminumos de 1 o valor da varivel "Usuarios_Ativos" Com este exemplo, pudemos ter uma idia do funcionamento e da utilidade do arquivo global.asa. Nas prximas pginas, iremos mostrar muitas outras utilidades para este arquivo. ----- 61 -----

CURSO DE ASP EXEMPLO: Colocamos aqui uma boa rotina para usar no seu site. Com ela, podemos visualizar quantos usurios esto visitando o seu site no momento. A rotina baseada principalmente no arquivo global.asa Abaixo, listamos o cdigo para o arquivo global.asa que deve ser colocado no seu site. <script language=vbscript runat=server> SUB Application_OnStart ' Este evento executado na primeira vez que uma pgina ASP chamada dentro ' da sua aplicao. ' Define o tempo de inatividade de cada sesso - neste caso, 5 minutos Session.Timeout=5 ' O mtodo "Lock" bloqueia a varivel Application para que possa ser atualizada ' Se no a bloquearmos, ela no ser atualizada Application.Lock ' Alteramos o valor inicial da varivel de aplicao "Usuarios_Ativos" para zero Application("Usuarios_Ativos") = 0 ' Desbloqueamos a varivel Application Application.UnLock END SUB SUB Application_OnEnd ' Este evento chamado quando a aplicao termina. Isto pode ser ocasionado ' atravs da ocorrncia de um tempo limite de inatividade ou a parada do web site. END SUB SUB Session_OnStart ' Este evento executado para cada usurio quando ele faz a primeira requisio ' de uma pgina na aplicao.

----- 62 -----

CURSO DE ASP

' Toda vez que um usurio entrar no site, vamos incrementar a varivel ' "Usuarios_Ativos" Application.Lock Application("Usuarios_Ativos")=Application("Usuarios_Ativos")+1 Application.UnLock END SUB SUB Session_OnEnd ' Este evento chamado quando acaba a sesso de um usurio. Isto pode ser ' ocasionado por um trmino explcito (mtodo session.abandon) ou pela ocorrncia ' de um tempo limite de inatividade da sesso. ' Quando um usurio abandona o site, decrementamos o valor da varivel ' "Usuarios_Ativos" Application.Lock Application("Usuarios_Ativos")=Application("Usuarios_Ativos")-1 Application.UnLock END SUB </script> No primeiro evento (Application_OnStart), definimos o tempo de time-out de cada sesso de usurio no site e inicializamos a varivel de aplicao "Usuarios_Ativos" em zero. Este evento s ocorre uma vez, quando a aplicao iniciada. No evento Session_OnStart, que ocorre cada vez que um novo usurio entra no site, incrementamos o valor da nossa varivel "Usuarios_Ativos". O evento Session_OnEnd ocorre no momento que um usurio abandona o site. Neste caso, isso ocasionado quando ocorre o tempo de abandono definido na propriedade Session.TimeOut no evento Application_OnStart. Na sada do site, diminumos de 1 o valor da varivel "Usuarios_Ativos" Agora, para saber o nmero de usurios ativos, basta exibir o valor da varivel de aplicao "Usuarios_Ativos" em qualquer pgina ASP do seu site. Vejamos um exemplo de cdigo a seguir: <html> <head> <title>ASP - Entendendo o arquivo global.asa</title> ----- 63 -----

CURSO DE ASP </head> <body> <% Response.Write("Usurios ativos no site:" & Application("Usuarios_Ativos")) %> </body> </html> Agora importante observar que uma sesso s considerada iniciada quando o usurio visita a primeira pgina ".ASP" do seu site. Por isso, importante que pelo menos a pgina inicial do seu site tenha essa extenso.

OUTRO EXEMPLO VIA GLOBAL.ASA

Como eu fao para executar automaticamente scripts em um servidor sem a necessidade de programas? Com certeza, esta no a melhor maneira de executar este tipo de funo, porm h esta possibilidade. Com apenas o uso do arquivo Global.asa, podemos executar funes e scripts em nosso site da web. O nico requisito necessrio : * Conhecimento sobre o global.asa A maneira da qual vou explicar, necessrio que certas tarefas sejam executadas com xito para que a automatizao do script tal funcione, por exemplo, aps 10 visitas ao seu site execute

tarefa, depois de 31 dias faa tal coisa, diariamente atualize tais dados e assim por diante. Vamos ver um exemplo de um global.asa que a cada 30 dias envie um email ao webmaster do site, que pode conter total de visitantes do ms ou outra informao que voc desejar. <SCRIPT LANGUAGE=VBScript RUNAT=Server> ' O aplicativo iniciou e foi definido a data de hoje varivel Application("Data" ) ' A data de envio do email foi definida para 30 dias depois da data de hoje
----- 64 -----

CURSO DE ASP

Sub Application_OnStart Application.Lock Application("Data") = Date Application("DataDeEnvio") = DateAdd("d", 30, Date) Application.Unlock End Sub 'Agora a sesso do usurio vai inicializar ' Vamos agora fazer uma verificao para saber se hoje o dia da data de envio do email Sub Session_OnStart ' Se a data de envio e a data de hoje conferir, o email ser enviado ao webmaster ' Mas antes disso, a data de envio modificada novamente para daqui a mais 30 dias. if Application("DataDeEnvio") = Date then

Application.Lock Application("Data") = Date Application("DataDeEnvio") = DateAdd("d", 30, Date) Application.UnLock ' Cdigo para enviar o email ao webmaster. Set objMail = Server.CreateObject("CDONTS.NewMail") objMail.To = webmaster@do.site.com.br objMail.From = "script@automatico.com" objMail.Subject = "Email do ms!" objMail.Body = "Email enviado para o webmaster." objMail.Send End if End Sub
----- 65 -----

CURSO DE ASP

</SCRIPT> Este um de muitos exemplos que voc pode criar para fazer seus scripts ASP trabalharem para voc, tenho certeza que depois desse simples script as idias vo fluir para voc, portanto, mos a obra.

----- 66 -----

CURSO DE ASP

BANCO DE DADOS
Desenvolvendo Aplicaes Web Em uma aplicao cliente/servidor, a aplicao cliente mantm uma conexo com a aplicao servidor, consultando-o periodicamente para verificar se a conexo est aberta. Se o servidor estiver fora do ar, a aplicao cliente no conseguir a conexo e ento tomar as medidas apropriadas (se esta aplicao estiver preparada para isso) como, por exemplo, enviar uma mensagem de erro para o usurio. Porm, desenvolver aplicaes baseadas na Web pode ser muito diferente de outros cliente. tipos Estas de so programao. estticas, ou Diferente seja, de tpicas do cliente aplicaes (browser) cliente/servidor, essas aplicaes compreendem pginas Web como resposta ao depois solicitar a pgina, a mesma processada no servidor e ento, o documento solicitado retornado. O processo da pgina termina quando o servidor Web envia a pgina. Como um desenvolvedor de aplicaes Web, voc precisa tambm se preocupar com a conexo de seu cliente e a Internet, aprenderemos como recuperar e alterar informaes em um banco de dados atravs de aplicaes Objects). Web, utilizando para isto a tecnologia ADO (ActiveX Data

ADO (ActiveX Data Objects)


uma coleo de objetos utilizados para recuperao, alterao, incluso e excluso de registros em bancos de dados ODBC e OLE DB. O ADO instalado com Microsoft Internet Information Server (IIS), verso 3.0. ----- 67 -----

CURSO DE ASP O ADO escrito em pginas ASP e executado no servidor Web, e retorna as informaes dos bancos de dados em formato HTML. A pgina retornada pode ser visualizada por qualquer browser em qualquer plataforma, pois o cdigo todo executado pelo Servidor. Esta coleo de objetos constitui uma camada entre a sua pgina na Web e o seu banco de dados. Para acessar o banco de dados, voc escrever cdigos que configuraro propriedades e mtodos dos objetos do ADO. A comunicao do ADO com o banco de dados feita atravs de OLE-DB (baseado na tecnologia COM) ou banco de dados que possuem drives ODBC (nesta opo a comunicao feita atravs da biblioteca MSDASQL.dll). Neste curso abordaremos a comunicao ADO ODBC. O esquema a seguir ilustra a comunicao do ADO com um banco de dados ODBC.

Instalando o ADO
Como o ADO faz parte do Microsoft Data Access Components, este pacote automaticamente instalado e registrado pelo IIS.

----- 68 -----

CURSO DE ASP

Objetos do ADO
Com o ADO, voc pode criar os objetos independentemente, o que permite a escrita de um cdigo mais simples e a criao apenas dos objetos que voc precisa.

Primeiramente, voc ir trabalhar com os objetos Connection, Command e Recordset. Os objetos Connection e Command possuem o mtodo Execute que executa um comando e retorna para um recordset. Voc tambm pode utilizar a e funo ento CreateObject instanciar objetos Recordset explicitamente,

utilizar o mtodo Open do objeto instanciado para criar um recordset.

Connection
O objeto Connection representa uma conexo aberta com a origem de dados. Voc utiliza o Connection para manter aberta em memria uma conexo com o banco de dados para que outros objetos possam acess-lo, como por exemplo, o objeto Recordset. Este objeto possui uma coleo que armazena qualquer erro que ocorra quando o acesso feito chamada Errors. Abrindo uma conexo atravs do objeto Connection Para estabelecer uma conexo com a fonte de dados, primeiramente devemos criar um objeto

----- 69 -----

CURSO DE ASP Connection. Para isto, utilizamos o mtodo CreateObject (objeto Server). Para conectar com a origem de dados, voc utiliza o mtodo Open. Sintaxe do mtodo Open Connection.Open DataSourceName, User, Senha Onde DataSourceName o nome do DSN criado no ODBC, User o nome do usurio que tem permisso de acesso e sua Senha. Exemplo O exemplo abaixo cria um objeto Connection chamado MinhaConexao e, atravs dele, abre uma conexo com a origem de dados chamada Externo (DSN definido no ODBC).

<% Set MinhaConexao = Server.CreateObject(ADODB.Connection) MinhaConexao.OpenExterno,, %>

Quando devo abrir ou fechar um objeto Connection?


muito importante pensar quando deve-se abrir uma conexo com o banco de dados, pois a origem de dados possui um limite de conexes. Quanto mais conexes existirem simultaneamente, mais provvel que outra aplicao que tente abrir a mesma origem de dados tenha o acesso negado, justamente pelo limite de conexes. Por isso, sempre importante verificar a necessidade de uma conexo permanecer durante toda a aplicao ou sesso. Alm do mais, o pedido de abertura de uma conexo com a origem de dados um servio que exige mltiplos ciclos da CPU. Abrir e fechar conexes repetidamente pode causar grande demanda no servidor. Se uma conexo ser utilizada novamente em um espao de tempo relativamente curto, uma boa idia no fech-la.

----- 70 -----

CURSO DE ASP

Abrir uma Conexo


Ao manipular um banco de dados preciso definir e abrir e uma conexo. Esse o primeiro passo para manipular os dados contidos no banco. Caso voc tente fazer qualquer operao no banco sem Ter uma conexo definida e aberta, ocorrer um erro no seu aplicativo e voc no ter acesso de forma alguma. Quando definimos uma conexo estamos informando qual o mtodo de acesso a ser utilizado de acordo com as condies citadas no item Fonte de Dados. Passos para se definir e abrir uma conexo: 1) Declara-se uma varivel de conexo, conn; 2) Atribui e esta varivel conn o objeto e o mtodo a ser utilizado; 3) A partir dessa varivel conn setada, utiliza-se o mtodo Open apara abrir a conexo. SINTAXE: Dim Conn Set Conn = Server.CreateObjetc(ADODB.Connection) Conn.Open fonte de dados Ou Conn.Open fonte de dados, UserId, Password Exemplo de como abrir um banco dados chamdo Loja.mdb via ODBC, criado em ACCESS: Dim Conn Set Conn = Server.CreateObjetc(ADODB.Connection) Conexao.Open DSN=loja

----- 71 -----

CURSO DE ASP Exemplo de como abrir um banco dados chamado Loja.mdb via ADO, criado em ACCESS: Dim Conn Set Conn = Server.CreateObject(ADODB.Connection) Conexao.Open DBQ=c:\inetpub\wwwroot\loja\loja.mdb;Driver={Microsoft Access Driver (*.mdb)}

Fechar uma Conexo


Uma vez aberta uma conexo para manipulao de dados, esta fica aberta at que seja encontrado o mtodo CLOSE para fech-la. de extrema importncia que uma conexo seja fechada assim que possvel, evitando o desperdcio de tempo de processamento no servidor. SINTAXE: Basta chamar o mtodo CLOSE com o nome da varivel de conexo aberta Conn.Close Como uma conexo uma instncia de um objeto, essa fica aberta na memria at que seja extrada, acarretando na liberao de memria do servidor. No confunda o mtodo CLOSE com o fechamento de instncia. A sintaxe bem simples, basta atribuir nada a varivel de conexo declarada. Set Conn = Nothing OBS.: Sempre feche uma conexo aberta assim que possvel.

ABRIR UM RECORDSET
RECORD REGISTRO SET CONJUNTO Portanto, Recordset um conjunto de registros cuja origem pode ser uma tabela ou uma consulta. De acordo o mtodo e a utilizao de um recordset, existe o papel chamado de cursor, que define o tipo de tratamento do recordset, ou sejam se ele ser somente leitura, permite atualizaes.

----- 72 -----

CURSO DE ASP Passos para se definir um recordset: 1) Declara-se uma varivel de recordset, rs; 2) Atribui a esta varivel rs o objeto e o mtodo a ser utilizado; 3) A partir dessa varivel rs setada, utiliza-se o mtodo EXECUTE para executar a ao. SINTAXE: Dim rs Set rs = Server.CreateObjetc(ADODB.Connection) Set rs = Conn.Execute(instruo SQL) Ou Dim rs, stringSQL Set rs = Conn.Execute(stringSQL) Exemplo de como selecionar todos os registros da tabela de produtos: Dim Conn, rs, stringSQL Set Conn = Server.CreateObject(ADODB.Connection) Conn.Open fonte de dados, UserId, Password StringSQL = Select * FROM tab_Produtos Set rs = Conn.Execute(stringSQL) ...instrues... rs.Close Conn.Close Set rs = Nothing Set Conn = Nothing

FECHAR UM RECORDSET
Como seu aplicativo pode ter vrios Recordsets abertos, interessante fech-los assim que possvel pelo mesmo motivo citado no fechamento da conexo. Outro fator a ser ressaltado que um recordset tambm uma instncia, portanto, preciso fech-lo assim que possvel. Para isso, utilize o mtodo CLOSE da varivel declarada no recordset e quando a instncia atribui-se nada a essa varivel. ----- 73 -----

CURSO DE ASP rs.Close Set rs = Nothing importante ressaltar que a declarao Set rs = Nothing s pode ser utilizada em instrues SQL do tipo SELECT, nunca, jamais nas instrues do tipo INSERT, UPDATE ou DELETE, caso isso acontea ser gerado um erro no seu aplicativo.

Include File
Imagine uma situao em que existe um cdigo que dever ser repetido em vrias pginas, podemos criar um nico arquivo ASP e fazer referncia a este arquivo. Um exemplo bem prtico para isto na hora em que voc tem uma pgina com acesso a banco de dados e tem que abrir e fechar a conexo, ento, criamos um arquivo que far tal funo e em qualquer pgina de acesso que precisar abrir e fechar a conexo, ao invs de digitar sempre as mesmas linhas, ter uma linha referenciando o arquivo que faz essa funo. Veja um arquivo exemplo que faz a conexo como o banco de dados. <% sub abre_conexao Set Conexao = Server.CreateObject("ADODB.Connection") Conexao.Open "DBQ=c:\inetpub\wwwroot\teste\exec\dados\lojavirtual.mdb;Driver={Microsoft Access Driver (*.mdb)}" end sub sub fecha_conexao Conexao.close Set conexao=nothing end sub %> Note que existe dois sub procedimentos: abre_conexao e fecha_conexao,

lembre-se que procedimentos so executados e no retornam nada. Agora veja como chamar esse arquivo de conexo e executar os procedimentos:

----- 74 -----

CURSO DE ASP <!--#include file =nome do arquivo de conexo--> <% Call abre_conexao Call fecha_conexao %>

Instrues SQL
Quando falamos em bancos de dados sempre vem na mente as tradicionais operaes com dados, selecionar, inserir, atualizar e excluir dados. A linguagem SQL dotada do que chamamos de instrues bsicas e SQL, que nos permite executar aqui tais se operaes. as Cabe ressaltar em SQL que as e sintaxes Access. apresentadas referem instrues Server

Basicamente existe uma nica diferena na sintaxe entre SQL Server e o Access, no que diz respeito ao tratamento de datas, onde no SQL Server tratado com

(apstrofo) e no Access com # (sustenido).

Exemplo SQL Server: 16/06/2002 Exemplo Access: #16/06/2002#

Instruo INSERT
Qualquer incluso de dados em uma tabela ser feita atravs da instruo INSERT. importante ressaltar que quando voc tem uma tabela com um campo do tipo AutoNumerao, esse campo no deve ser includo na instruo INSERT porque como o prprio tipo j diz, ele ser incrementado automaticamente. A regra diz que na elaborao da instruo INSERT todo campo do tipo texto (alfanumrico) dever estar entre (apstrofo) ; para campo tipo numrico nunca colocar (aspas) e nem (apstrofo), para campo do tipo data, no Access ele dever estar entre # (sustenido) # e se for no SQL Server e demais linguagens dever estar entre (apstrofo). Quando voc incluir um novo registro preciso estabelecer a conexo, abrir a tabela e inserir o registro, nunca feche o recordset quando utilizar a instruo Insert. ----- 75 -----

CURSO DE ASP SINTAXE: INSERT INTO tabela (campo1, campo2...) VALUES (valor1, valor2...) EXEMPLOS: INSERT INTO alunos (nome, idade) VALUES (Patricia, 15) INSERT INTO atletas (nome, esporte, dta_nascimento) VALUES (Rafael,

futebol, #27/01/82#) O exemplo a seguir cadastra um novo produto na tabela produtos. <% Option Explicit Dim Conexao, rs, srtSQL instrues SQL strSQL = INSERT INTO Produtos (Produto, Cod_Categoria, VRL_Unitario, QTD_Estoque) VALUES (computador, 9, 2000, 10) abre a conexo Set Conexao = Server.CreateObject("ADODB.Connection") Conexao.Open "DBQ=c:\inetpub\wwwroot\teste\exec\dados\lojavirtual.mdb;Driver={Microsoft Access Driver (*.mdb)}" executa a instruo SQL Set rs=Conexao.Execute(strSQL) fecha a conexao Conexao.close Set conexao= nothing Set rs = %> EXEMPLO 25 Crie um banco de dados com nome de Loja Virtual, dentro dele crie a tabela Clientes1 com os seguintes campos: nothing

----- 76 -----

CURSO DE ASP NOME DO CAMPO CDIGO NOME CGC/CPF ENDEREO CIDADE UF TELEFONE EMAIL DTA_CADASTRO TIPO DE DADOS AUTO-NUMERAO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO DATA/HORA TAMANHO INTEIRO LONGO 50 50 50 25 2 20 50

Agora iremos criar 03 arquivos para efetuar incluses dentro da tabela CLIENTES1. O primeiro arquivo deve ser chamado de CadCli.HTM que contm um formulrio para a digitao dos dados a serem inseridos na tabela CLIENTES1. O segundo cadastre conexao as com incluiclientes.asp que ir mostrar as informaes O de terceiro dados incluiclientes1.asp que ser ir efetuar dentro a do

digitadas e recuperadas no formulrio, permitindo que o usurio altere ou informaes. o banco gravao no banco de dados, mas antes de tudo deveremos criar o arquivo de chamado incluiclientes1.asp, este arquivo ser chamado de bib_conexao.asp.

Arquivo bib_conexao.asp
<% sub abre_conexao Set Conexao = Server.CreateObject("ADODB.Connection") Conexao.Open "DBQ=c:\inetpub\wwwroot\teste\exec\dados\lojavirtual.mdb;Driver={Microsoft Access Driver (*.mdb)}" end sub sub fecha_conexao Conexao.close Set conexao=nothing end sub %>

Arquivo CADCLI.HTM
<html> <head> <title> CADASTRO DE CLIENTES </title> <body bgcolor="#80D8A0"> <form method="POST" action="incluiclientes.asp"> <div align="center"> ----- 77 -----

CURSO DE ASP <font face="Verdana" size="2"><b>CADASTRO DE CLIENTES</b></font><br><br> <table> <tr> <td align="center"> <table border="0" bgcolor="#F8C810" cellspacing="0"> <tr> <td <tr> <td align="right"><font face="verdana">&nbsp;</font</td> <td>&nbsp;</td> </tr> <tr> <td align="right"><strong><font type="text" name="nome" face="verdana"><small>Nome:</small></font></strong></td> <td><font face="verdana"><input size="25" maxlengh="50" class="campo"></font></td> </tr> <tr> <td align="right"><strong><font face="verdana"><small>CGC/CPF:</small></font></strong></td> <td><font face="verdana"><input type="text" name="cgccpf" size="25" maxlengh="50" class="campo"></font></td> </tr> <tr> <td align="right"><strong><font face="verdana"><small>Endereo:</small></font></strong></td> <td><font face="verdana"><input type="text" name="endereco" size="25" maxlengh="50" class="campo"></font></td> </tr> <tr> <td align="right"><strong><font face="verdana"><small>Cidade:</small></font></strong></td> <td><table border="0" cellpadding="0"> <tr> <td><font face="verdana"><input type="text" name="cidade" size="25" maxlengh="50" class="campo"></font></td> width="100"%><table border="0" cellpadding="2" cellspacing="0" bgcolor="#E0EC90">

----- 78 -----

<td

CURSO DE ASP align="right>"<strong><small><font

face="Verdana">UF:</font></small></strong></td> <td><select name="uf" size="1" class="campo"> <option value="UF">UF</option> <option value="AC">AC</option> <option value="AL">AL</option> <option value="AM">AM</option> <option value="AP">AP</option> <option value="BA">BA</option> <option value="CE">CE</option> <option value="DF">DF</option> <option value="ES">ES</option> <option value="GO">GO</option> <option value="MA">MA</option> <option value="MG">MG</option> <option value="MS">MS</option> <option value="MT">MT</option> <option value="PA">PA</option> <option value="PB">PB</option> <option value="PE">PE</option> <option value="PI">PI</option> <option value="PR">PR</option> <option value="RJ">RJ</option> <option value="RN">RN</option> <option value="RO">RO</option> <option value="RR">RR</option> <option value="RS">RS</option> <option value="SC">SC</option> <option value="SP">SP</option> <option value="SE">SE</option> <option value="TO">TO</option> </select> </td> </tr> </table> </td> </tr> <tr>

----- 79 -----

<td

CURSO DE ASP align="right"><strong><font

face="verdana"><small>Telefone:</small></font></strong></td> <td><font face="verdana"><input type="text" name="tel" size="25" maxlengh="30" class="campo"></font></td> </tr> <tr> <td align="right"><strong><font face="verdana"><small>Email:</small></font></strong></td> <td><font face="verdana"><input type="text" name="email" size="25" maxlengh="80" class="campo"></font></td> </tr> <tr> <td align="right"><strong><font face="verdana"><small>Data do Cadastro:</small></font></strong></td> <td><table border="0" cellpadding="0" height="23"> <tr> <td height="21"><select name="diacad" size="1" class="campo"> <option selected value="Dia">dia</option> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <option value="04">04</option> <option value="05">05</option> <option value="06">06</option> <option value="07">07</option> <option value="08">08</option> <option value="09">09</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> ----- 80 -----

CURSO DE ASP <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> </select></td> <td height="21"><select name="mescad" size="1" class="campo"> <option selected value="ms">Ms</option> <option value="01">Jan</option> <option value="02">Fev</option> <option value="03">Mar</option> <option value="04">Abr</option> <option value="05">Mai</option> <option value="06">Jun</option> <option value="07">Jul</option> <option value="08">Ago</option> <option value="09">Set</option> <option value="10">Out</option> <option value="11">Nov</option> <option value="12">Dez</option> </select></td> <td <td height="21"> <input type="text" name="anocad" size="4" maxlength="4"></td> </tr> </table> </td> </tr> <tr> <td align="right">&nbsp;</td> <td valign="top">&nbsp;</td> </tr> ----- 81 ----height="21"<strong><small><font face="Verdana">Ano(aaaa):</font></small></strong></td>

CURSO DE ASP </table> </td> </tr> </table> </td> </tr> <tr> <td name="cadastrar"> </td> </tr> </table> </div> </form> </body> </html> align="center"><input type="submit" value="Cadastrar"

----- 82 -----

CURSO DE ASP

ARQUIVO INLCUICLIENTES.ASP
<% 'Programa 'Funo 'Analista nome cgccpf cidade uf tel email diacad mescad anocad datacad %> <html> <head> <title> CONFIRMAO DE DADOS </title> </head> <body bgcolor="#80D8A0" link="#000000" vlink="#000000" alink="#000000"> <form method="POST" action="incluiclientes1.asp"> <div align="center"> <table border="0" width="440" cellspacing="0" cellpadding="5"> <tr> <td align="center"> <table border="0" bgcolor="#FFFFFF" cellspacing="0" cellpadding="5" width="260"> <tr> <td align="center" bgcolor="#E03C30"><b><font face="Verdana" size="3" color="#FFFFFF">Confira os dados digitados !!!</font></b></td> </tr> <td><b><font face="verdana" size="1"><font size="2"> Nome: <%=nome%><br><br> CGC / CPF: <%=cgccpf%><br><br> Endereo: <%=endereco%><br><br> Cidade: <%=cidade%><br><br> ----- 83 ----: incluiclientes.asp : Confirmao de dados do Formulrio de Incluso de Clientes : Israel Marques Caja Jnior = request.form("nome") = request.form("cgccpf") = request.form("cidade") = request.form("uf") = request.form("tel") = request.form("email") = request.form("diacad") = request.form("mescad") = request.form("anocad") = FormatDateTime(diacad & "/" & mescad & "/" & anocad,vbShortDate)

endereco = request.form("endereco")

CURSO DE ASP UF: <%=uf%><br><br> Telefone: <%=tel%><br><br> E-mail: <%=email%><br><br> Data: <%=datacad%><br><br></font><br> </font></b> </td> </table> </tr> <tr> <td align="center"> <table border="0" cellspacing="0" cellpadding="0" width="300"> <tr> <td width="50%" align="center"><input type="button" value="Corrigir" onClick="javascript:history.go(-1)" name="button"> <input type="submit" value="Cadastrar" name="enviar" class="vai"> </td> </tr> </table> </td> </tr> </table> </div> <input type="hidden" name="nome" value="<%=nome%>"> <input type="hidden" name="cgccpf" value="<%=cgccpf%>"> <input type="hidden" name="endereco" value="<%=endereco%>"> <input type="hidden" name="cidade" value="<%=cidade%>"> <input type="hidden" name="uf" value="<%=uf%>"> <input type="hidden" name="tel" value="<%=tel%>"> <input type="hidden" name="email" value="<%=email%>"> <input type="hidden" name="datacad" value="<%=datacad%>"> </form> </body> </html>

----- 84 -----

CURSO DE ASP

ARQUIVO INCLUICLIENTES1.ASP
<% Option Explicit %> <!--#include file="bib_conexao.asp"--> <% Dim Conexao, rs, strSQL Dim nome, cgccpf, endereco, cidade, uf, tel, email, datacad nome = request.form("nome") cgccpf = request.form("cgccpf") endereco = request.form("endereco") cidade = request.form("cidade") uf = request.form("uf") tel = request.form("tel") email = request.form("email") datacad = request.form("datacad") strSQL = "INSERT INTO clientes1 (Nome, cgccpf, Endereco, Cidade, UF, Telefone, email, DTA_Cadastro) " ----- 85 -----

CURSO DE ASP strSQL = strSQL & "values ('" & nome & "','" & cgccpf & "','" & endereco & "','" & cidade & "','" strSQL= strSQL & uf & "','" & tel & "','"& email & "', #" & datacad & "#)" 'abre a conexao Call abre_conexao Set rs=Conexao.Execute(strSQL) 'fecha a conexao Call fecha_conexao Set rs = Nothing %> <html> <head> <title> CONFIRMAO DE CADASTRO </title> </head> <body bgcolor="#000099"> <div align="center"> <p>&nbsp;</p> <p><font color="#FF6633" face="Verdana"><b><font size="4">Cliente Cadastrado com<br><font color="#FFFFFF" size="6">S U C E S S O ! ! ! </font></font></b></font><br> <br> <a href="cadcli.htm"><font color="#FF6633" face="verdana" size="2"><b> voltar</b></font></a></p> </div> </body> </html>

----- 86 -----

CURSO DE ASP

EXEMPLO 26
Crie um banco de dados com nome Cadastro e uma os seguintes campos: NOME DO CAMPO CDIGO NOME EMPRESA ENDEREO BAIRRO CIDADE ESTADO CEP FONE FAX EMAIL ESTUDANTE ENTIDADE CIDADE1 ESTADO1 CEP1 OBSERVAES TIPO DE DADOS AUTONUMERAAO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TAMANHO INTEIRO LONGO 70 50 50 30 30 02 09 20 20 50 03 50 30 02 09 255 tabela de nome Cadastro com

Agora iremos criar 03 arquivos para efetuar incluses dentro da tabela CADASTRO. O primeiro arquivo deve ser chamado de Cadastro.HTM que contm um formulrio para a digitao dos dados a serem inseridos na tabela CADASTRO. O segundo incluicli.asp que ir mostrar as informaes digitadas e recuperadas no formulrio, permitindo que o usurio altere ou cadastre as informaes. O terceiro inclui1.asp ir efetuar a gravao no banco de dados, mas antes de tudo deveremos ALTERAR ----- 87 ----o arquivo de conexao com o

CURSO DE ASP banco de dados ser chamado dentro do inclui1.asp, chamado de bib_conexao.asp. este arquivo ser

Arquivo bib_conexao.asp
<% sub abre_conexao Set Conexao = Server.CreateObject("ADODB.Connection") Conexao.Open "DBQ= c:\inetpub\wwwroot\cad\arq\cadastro.mdb;Driver={Microsoft Access Driver (*.mdb)}" end sub sub fecha_conexao Conexao.close Set conexao=nothing end sub %>

Arquivo Cadastro.htm OBS.: este arquivo contm alguns formatao do formulrio.


<% Option Explicit 'Programa 'Funo do CIHAT 'Analista %> <!--#include file="bib_conexao.asp"--> <html> <head> <title>***** CADASTRO 15o. CIHAT *****</title> <style> td {font-family:verdana; font-size: 8pt;} : Israel Marques Caja Jnior : cadastro.htm

comandos

em

CSS

para

: Cadastro de dados no Formulrio de Incluso de Participantes

select {border-color: #441ff1; border-style: solid; border-width: 1; background-color:#e4e4e4; font-size:7pt; font-family: verdana; color:#006666;}

----- 88 -----

CURSO DE ASP input {border-color: #000000; border-style: solid; border-width: 1; background-color:#e4e4e4; font-size:7pt; font-family: verdana; #006666} textarea {border-color: #000000; border-style: solid; border-width: 1; background-color:#e4e4e4; font-size:7pt; font-family: verdana; #006666} .radio {border-color: #ffffff; border-style: none; backgroundcolor:#ffffff;} .normal{border-style: none; background-color:#ffffff;} A:link {color:"#666666"; A:hover {color:"#ffffff"; A:active {color:"#666666"; </style> <body bgcolor="#009999" link="#003333" vlink="#003333" alink="#003333" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <p>&nbsp;</p> <form method="post" action="inclui.asp"> <table width="76%" border="0" align="center" cellpadding="3" cellspacing="2"> <tr> <td colspan="4"> <div align="center"> <p>&nbsp;</p> <p><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Preencha agora o seu Cadastro para voc&ecirc; participar do 15o. CIHAT !!!</b><br> <br> </font></p> </div> </td> </tr> <tr> <td width="14%"> <div align="right"><font color="#FFFFFF">Nome: </font></div> </td> <td width="30%"> <input type="text" name="nome" size="30" maxlength="50"> ----- 89 ----text-decoration: none;} text-decoration: none;} text-decoration: none;} text-decoration: none;} A:visited {color:"#666666"; color: color:

CURSO DE ASP </td> <td width="18%"> <div align="right"><font color="#FFFFFF">Empresa: </font></div> </td> <td width="38%"> <input type="text" name="empresa" size="30" maxlength="50"> </td> </tr> <tr> <td width="14%"> <div align="right"><font color="#FFFFFF">Endere&ccedil;o: </font></div> </td> <td width="30%"> <input type="text" name="endereco" size="30" maxlength="50"> </td> <td width="18%"> <div align="right"><font color="#FFFFFF">Bairro: </font></div> </td> <td width="38%"> <input type="text" name="bairro" size="30" maxlength="50"> </td> </tr> <tr> <td width="14%"> <div align="right"><font color="#FFFFFF">Cidade: </font></div> </td> <td width="30%"> <input type="text" name="cidade" size="30" maxlength="50"> </td> <td width="18%"> <div align="right"><font color="#FFFFFF">Estado: </font></div> </td> <td width="38%"> <select name="estado"> <option>Selecione o Estado</option> <option value="AC">AC</option> <option value="AL">AL</option> ----- 90 -----

CURSO DE ASP <option value="AM">AM</option> <option value="AP">AP</option> <option value="BA">BA</option> <option value="CE">CE</option> <option value="DF">DF</option> <option value="ES">ES</option> <option value="GO">GO</option> <option value="MA">MA</option> <option value="MG">MG</option> <option value="MS">MS</option> <option value="MT">MT</option> <option value="PA">PA</option> <option value="PB">PB</option> <option value="PE">PE</option> <option value="PI">PI</option> <option value="PR">PR</option> <option value="RJ">RJ</option> <option value="RN">RN</option> <option value="RO">RO</option> <option value="RR">RR</option> <option value="RS">RS</option> <option value="SC">SC</option> <option value="SP">SP</option> <option value="SE">SE</option> <option value="TO">TO</option> </select> </td> </tr> <tr> <td width="14%"> <div align="right"><font color="#FFFFFF">Cep: </font></div> </td> <td width="30%"> <input type="text" name="cep" size="30" maxlength="9"> </td> <td width="18%"> <div align="right"><font color="#FFFFFF">Fone: </font></div> </td> ----- 91 -----

CURSO DE ASP <td width="38%"> <input type="text" name="fone" size="30" maxlength="20"> </td> </tr> <tr> <td width="14%"> <div align="right"><font color="#FFFFFF">Fax: </font></div> </td> <td width="30%"> <input type="text" name="fax" size="30" maxlength="20"> </td> <td width="18%"> <div align="right"><font color="#FFFFFF">E-mail: </font></div> </td> <td width="38%"> <input type="text" name="email" size="30" maxlength="50"> </td> </tr> <tr> <td width="14%"> <div align="right"><font color="#FFFFFF">Estudante: </font></div> </td> <td width="30%"> <font color="#FFFFFF"> <input type="radio" name="estudante" value="Sim"> Sim &nbsp;&nbsp;&nbsp; <input type="radio" name="estudante" value="N&atilde;o"> N&atilde;o</font> </td> <td width="18%"> <div align="right"><font color="#FFFFFF">Entidade: </font></div> </td> <td width="38%"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"> <input type="text" name="entidade" size="30" maxlength="50"> </font> </td> </tr> <tr> <td width="14%"> <div align="right"><font color="#FFFFFF">Cidade: </font></div> ----- 92 -----

CURSO DE ASP </td> <td width="30%"> <input type="text" name="cidade1" size="30" maxlength="50"> </td> <td width="18%"> <div align="right"><font color="#FFFFFF">Estado: </font></div> </td> <td width="38%"> <select name="estado1"> <option>Selecione o Estado</option> <option value="AC">AC</option> <option value="AL">AL</option> <option value="AM">AM</option> <option value="AP">AP</option> <option value="BA">BA</option> <option value="CE">CE</option> <option value="DF">DF</option> <option value="ES">ES</option> <option value="GO">GO</option> <option value="MA">MA</option> <option value="MG">MG</option> <option value="MS">MS</option> <option value="MT">MT</option> <option value="PA">PA</option> <option value="PB">PB</option> <option value="PE">PE</option> <option value="PI">PI</option> <option value="PR">PR</option> <option value="RJ">RJ</option> <option value="RN">RN</option> <option value="RO">RO</option> <option value="RR">RR</option> <option value="RS">RS</option> <option value="SC">SC</option> <option value="SP">SP</option> <option value="SE">SE</option> <option value="TO">TO</option> ----- 93 -----

CURSO DE ASP </select> </td> </tr> <tr> <td width="14%"> <div align="right"><font color="#FFFFFF">CEP: </font></div> </td> <td width="30%"> <input type="text" name="cep1" size="30" maxlength="9"> </td> <td width="18%"> <div align="right"><font color="#FFFFFF">Observa&ccedil;&otilde;es:</font></div> </td> <td width="38%"> <textarea name="observacoes" cols="30"></textarea> </td> </tr> <tr> <td colspan="4">&nbsp;</td> </tr> <tr> <td colspan="4"> <div align="center"> <input type="submit" name="Cadastrar" value="Confirmar os Dados">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="reset" name="Refazer" value="Apagar os Dados"> </div> <div align="right"></div> </td> </tr> </table> </form> <p>&nbsp;</p> </body> </html>

----- 94 -----

CURSO DE ASP

Arquivo inclui.asp tambm possui CSS <% 'Programa 'Funo 'Analista nome empresa endereco bairro cidade estado cep fone fax email estudante :inclui.asp :Confirmao de dados do Formulrio de Incluso de

Participantes do CIHAT :Israel Marques Caja Jnior = request.form("nome") = request.form("empresa") = request.form("endereco") = request.form("bairro") = request.form("cidade") = request.form("estado") = request.form("cep") = request.form("fone") = request.form("fax") = request.form("email") = request.form("estudante") ----- 95 -----

CURSO DE ASP entidade cidade1 estado1 cep1 %> <html> <head> <title> CONFIRMAO DE DADOS </title> <style> td {font-family:verdana; font-size: 8pt;} select {border-color: #441ff1; border-style: solid; border-width: 1; background-color:#e4e4e4; color:#006666;} input {border-color: #000000; border-style: solid; border-width: verdana; 1; background-color:#e4e4e4; #006666} textarea #006666} .radio {border-color: #ffffff; border-style: none; backgroundcolor:#ffffff;} .normal{border-style: none; background-color:#ffffff;} A:link {color:"#666666"; A:hover {color:"#ffffff"; A:active {color:"#666666"; </style> </head> <body bgcolor="#006666" link="#000000" vlink="#000000" alink="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <form method="POST" action="inclui1.asp"> <div align="center"> <table border="0" width="326" cellspacing="0" cellpadding="5"> <tr> <td align="center"> <table cellpadding="3" width="500"> ----- 96 ----border="1" bgcolor="#FFFFFF" cellspacing="0" text-decoration: none;} text-decoration: none;} text-decoration: none;} text-decoration: none;} A:visited {color:"#666666"; {border-color: #000000; border-style: solid; border-width: verdana; 1; background-color:#e4e4e4; font-size:7pt; font-family: color: font-size:7pt; font-family: color: font-size:7pt; font-family: verdana; = request.form("entidade") = request.form("cidade1") = request.form("estado1") = request.form("cep1")

observacoes = request.form("observacoes")

CURSO DE ASP <tr bgcolor="#009999"> <td align="center" colspan="2"> <p><font face="Verdana" size="2" color="#FFFFFF"> <font size="3"> <font informa&ccedil;&otilde;es digitadas !!!</b></font></font></font></p> </td> </tr> <tr bgcolor="#009999"> <td width="105"> <p align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">Nome: </font></font></font></p> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=nome%> </font></font></font></b></td> <tr bgcolor="#009999"> <td width="105"> <div align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">Empresa: </font></font></font></div> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=empresa%></font></font></font></b></td> <tr bgcolor="#009999"> <td width="105"> <div align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">Endereo: </font></font></font></div> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=endereco%></font></font></font></b></td> <tr bgcolor="#009999"> <td width="105"> <div align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">Bairro: ----- 97 ----size="2"><b>Por favor, confira as

CURSO DE ASP </font></font></font></div> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=bairro%></font></font></font></b></td> <tr bgcolor="#009999"> <td width="105"> <div align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">Cidade: </font></font></font></div> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=cidade%></font></font></font></b></td> <tr bgcolor="#009999"> <td width="105"> <div align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">Estado: </font></font></font></div> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=estado%></font></font></font></b></td> <tr bgcolor="#009999"> <td width="105"> <div align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">Cep: </font></font></font></div> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=cep%></font></font></font></b></td> <tr bgcolor="#009999"> <td width="105"> <div align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">Fone: </font></font></font></div> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=fone%></font></font></font></b></td> <tr bgcolor="#009999"> <td width="105"> ----- 98 -----

CURSO DE ASP <div align="right"><font size="2"><font

face="verdana"><font color="#FFFFFF">Fax: </font></font></font></div> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=fax%></font></font></font></b></td> <tr bgcolor="#009999"> <td width="105"> <div align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">E-mail: </font></font></font></div> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=email%></font></font></font></b></td> <tr bgcolor="#009999"> <td width="105"> <div align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">Estudante: </font></font></font></div> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=estudante%></font></font></font></b></td> <tr bgcolor="#009999"> <td width="105"> <div align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">Entidade: </font></font></font></div> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=entidade%></font></font></font></b></td> <tr bgcolor="#009999"> <td width="105"> <div align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">Cidade: </font></font></font></div> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=cidade1%></font></font></font></b></td> ----- 99 -----

CURSO DE ASP <tr bgcolor="#009999"> <td width="105"> <div align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">Estado: </font></font></font></div> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=estado1%></font></font></font></b></td> <tr bgcolor="#009999"> <td width="105"> <div align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">Cep: </font> </font></font></div> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font color="#FFFFFF"><%=cep1%></font></font></font></b></td> <tr bgcolor="#009999"> <td width="105"> <p align="right"><font size="2"><font face="verdana"><font color="#FFFFFF">Observa&ccedil;&otilde;es: </font></font> </font></p> </td> <td width="377"><b><font face="verdana" size="1"><font size="2"><font %></font></font></font></b></td> </table> </tr> <tr> <td align="center"> <table border="0" cellspacing="0" cellpadding="0" width="300"> <tr> <td width="50%" align="center"><input type="button" value="Corrigir" onClick="javascript:history.go(-1)" name="button"> <input type="submit" value="Cadastrar" name="enviar" class="vai"> </td> </tr> </table> ----- 100 ----color="#FFFFFF"><%=observacoes

CURSO DE ASP </td> </tr> </table> </div> <p> <input type="hidden" name="nome" value="<%=nome%>"> <input type="hidden" name="empresa" value="<%=empresa%>"> <input type="hidden" name="endereco" value="<%=endereco%>"> <input type="hidden" name="bairro" value="<%=bairro%>"> <input type="hidden" name="cidade" value="<%=cidade%>"> <input type="hidden" name="estado" value="<%=estado%>"> <input type="hidden" name="cep" value="<%=cep%>"> <input type="hidden" name="fone" value="<%=fone%>"> <input type="hidden" name="fax" value="<%=fax%>"> <input type="hidden" name="email" value="<%=email%>"> <input type="hidden" name="estudante" value="<%=estudante%>"> <input type="hidden" name="entidade" value="<%=entidade%>"> <input type="hidden" name="cidade1" value="<%=cidade1%>"> <input type="hidden" name="estado1" value="<%=estado1%>"> <input type="hidden" name="cep1" value="<%=cep1%>"> <input type="hidden" name="observacoes" value="<%=observacoes%>"> </p> </form> </body> </html>

----- 101 -----

CURSO DE ASP

Arquivo inclui1.asp
<% Option Explicit 'Programa 'Funo 'Analista %> <!--#include file="bib_conexao.asp"--> <% Dim Conexao, rs, strSQL Dim nome, empresa, endereco, bairro, cidade, estado, cep, fone, fax, email, estudante, entidade, cidade1, estado1, cep1, observacoes Nome Empresa Endereco Bairro Cidade Estado = request.form("nome") = request.form("empresa") = request.form("endereco") = request.form("bairro") = request.form("cidade") = request.form("estado") ----- 102 ----: inclui1.asp : Incluso no Banco de Dados Cadastro.mdb : Israel Marques Caja Jnior

CURSO DE ASP Cep Fone Fax Email Estudante Entidade cidade1 estado1 cep1 = request.form("cep") = request.form("fone") = request.form("fax") = request.form("email") = request.form("estudante") = request.form("entidade") = request.form("cidade1") = request.form("estado1") = request.form("cep1")

observacoes = request.form("observacoes") strSQL = "INSERT INTO cadastro (nome, empresa, endereco, bairro, cidade, estado, cep, fone, fax, email, estudante, entidade, cidade1, estado1, cep1, observacoes) " strSQL = strSQL & "values ('" & nome & "','" & empresa & "','" & endereco & "','" & bairro & "','" strSQL= strSQL & cidade & "','" & estado & "','"& cep & "','"& fone & "','"& fax & "','"& email & "','"& estudante & "','"& entidade & "','"& cidade1 & "','"& estado1 & "','"& cep1 & "','"& observacoes & "' )" 'abre a conexao Call abre_conexao Set rs=Conexao.Execute(strSQL) 'fecha a conexao Call fecha_conexao Set rs = Nothing %> <html> <head> <title> CONFIRMAO DE CADASTRO </title> </head> <body bgcolor="#006666" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF"> <div align="center"> <p>&nbsp;</p> <p><font color="#FF6633" face="Verdana"><b><font size="4"> <font color="#FFFFFF">Cadastrado efetuado com<br> <font </font><br> ----- 103 ----size="6">S U C E S S O ! ! ! </font></font></font></b></font><font color="#FFFFFF"><br>

CURSO DE ASP <a href="index.htm"><font color="#FF6633" face="verdana" size="2"><b> <font color="#FFFFFF">voltar</font></b></font></a></p> </div> </body>

</html>

Instruo SELECT
sem dvida a instruo mais utilizada em SQL. atravs do select que voc faz pesquisas nos RECORDSETS, seja para verificar e consistir algum dado, seja para relatrios, seja para exportao de dados, enfim qualquer tipo de pesquisa realizada. A sintaxe do SELECT contm alguns argumentos opcionais, que so utilizados para organizar os dados, filtrar de acordo com alguma condio estabelecida e ler campos de outras tabelas. Termos utilizados em SQL: - Campo1, Campo2... referem-se aos campos ou atributos de uma tabela. - Tabela1, Tabela2... referem-se as tabelas utilizadas como referncia, tambm podemos chamar tabelas de entidades.

----- 104 -----

CURSO DE ASP SINTAXE: SELECT campo 1, campo2 FROM tabela1 [INNER JOIN tabela 2 on tabela1.campo1 = tabela2.campo2] [ODER BY campo DESC] [GROUP BY campo DESC] [WHERE campo1 = condio ...]

VRIOS EXEMPLOS
SELECT NORMAL 1 SELECT Seleo simples de campos de uma tabela. SELECT campo1, campoN FROM tabela 2- SELECT Seleciona todos os campos da tabela clientes. SELECT * FROM clientes EXEMPLO 27 Selecionando todos os campos da tabela partir do banco de dados Loja Virtual, crie a tabela CLIENTES com os seguintes campos: NOME DO CAMPO CDIGOCLI NOMECLI ENDEREOCLI BAIRROCLI CEPCLI CIDADECLI ESTADOCLI FONE1CLI FONE2CLI CPF/CNPJCLI EMAILCLI TIPO DE DADOS AUTONUMERAAO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TAMANHO INTEIRO LONGO 50 50 30 09 20 02 20 20 20 50

Veja abaixo o cdigo do programa CLIENTES.ASP que mostra todos os registros existentes na tabela CLIENTES.

Arquivo Clientes.asp
<% Option Explicit %> <!--#include file="bib_conexao.asp"--> <% ----- 105 -----

CURSO DE ASP 'Relao de clientes cadastrados Dim Conexao, rsClientes, strSQL strSQL = "SELECT * FROM Clientes ORDER BY CodCli" Call abre_conexao Set rsClientes = Conexao.Execute(strSQL) %> <html> <head> <title> Relao Completa de Clientes </title> </head> <body topmargin="0" leftmargins="0" bogcolor="#FFFFF"> <table border="1" cellpading="0" <tr> <td bgcolor="#471555" colspan="11"> <div align="center"><font color="#FFFFFF"><b>CADASTRO DE CLIENTES </b></font></div> </td> </tr> <tr bgcolor="#CCFFFF"> <td width="100"> <div </td> <td width="100"> <div </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Endereo </font></b></div> </td> <td width="100"> <div </td> <td width="100"> align="center"><b><font color="#003366" size="1"> Bairro </font></b></div> align="center"><b><font color="#003366" size="1"> Nome align="center"><b><font color="#003366" size="1"> Cdigo </font></b></div> bordercolor="#CCCCCC" cellspacing="0">

----- 106 -----

<div </font></b></div> </td>

align="center"><b><font

CURSO DE ASP color="#003366" size="1"> CEP

<td width="100"> <div </td> <td width="100"> <div </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Telefone 01 </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Telefone 02 </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> CPF/CNPJ </font></b></div> </td> <td width="100"> <div </td> </tr> <% While Not rsClientes.EOF %> <tr bgcolor="#FFFFFF"> <td <td <td width="100"><font width="100"><font width="100"><font color="#471555" color="#471555" color="#471555" face="verdana" face="verdana" face="verdana" size="1">< size="1">< size="1">< %=rsClientes("CodCli") %></font</td> %=rsClientes("NomeCli") %></font</td> %=rsClientes("EndCli") %></font</td> align="center"><b><font color="#003366" size="1"> E-mail </font></b></div> align="center"><b><font color="#003366" size="1"> Estado </font></b></div> align="center"><b><font color="#003366" size="1"> Cidade </font></b></div>

----- 107 -----

CURSO DE ASP <td <td <td <td <td <td <td <td </tr> <% rsClientes.MoveNext Wend Call fecha_conexao Set rsClientes = Nothing %> </table> </body> </html> width="100"><font width="100"><font width="100"><font width="100"><font width="100"><font width="100"><font width="100"><font width="100"><font color="#471555" color="#471555" color="#471555" color="#471555" color="#471555" color="#471555" color="#471555" color="#471555" face="verdana" face="verdana" face="verdana" face="verdana" face="verdana" face="verdana" face="verdana" face="verdana" size="1">< size="1">< size="1">< size="1">< size="1">< size="1">< size="1">< size="1"><

%=rsClientes("BairroCli") %></font</td> %=rsClientes("CepCli") %></font</td> %=rsClientes("CidCli") %></font</td> %=rsClientes("EstadoCli") %></font</td> %=rsClientes("Fone1Cli") %></font</td> %=rsClientes("Fone2Cli") %></font</td> %=rsClientes("CPFCli") %></font</td> %=rsClientes("EmailCli") %></font</td>

----- 108 -----

CURSO DE ASP

ORDER BY
Seleo simples de campos em uma tabela de forma ordenada (crescente ou decrescente). Esse argumento extremamente utilizado quando necessita-se exibir um recordset para um relatrio na forma de tabela, proporcionando uma visualizao ordenada dos dados. SELECT campo1, campoN FROM tabela ORDER BY campo DESC Seleciona os campos da tabela clientes em ordem decrescente por nome.

EXEMPLO 28 ARQUIVO CLIENTES1.ASP


Seleciona o nome e o e-mail do clientes e mostra na tela ordenado pelo nome. <% Option Explicit %> <!--#include file="bib_conexao.asp"--> <% ----- 109 -----

CURSO DE ASP 'Relao de clientes cadastrados Dim Conexao, rsClientes, strSQL strSQL = "SELECT NomeCli, EmailCli From Clientes ORDER BY NomeCli" Call abre_conexao Set rsClientes = Conexao.Execute(strSQL) %> <html> <head> <title> Relao de Clientes Nome - Email </title> </head> <body topmargin="0" leftmargins="0" bogcolor="#FFFFF"> <table <tr> <td bgcolor="#471555" colspan="12"> <div align="center"><font color="#FFFFFF"><b>CADASTRO DE CLIENTES </b></font></div> </td> </tr> <tr bgcolor="#CCFFFF"> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Nome do Cliente</font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Email do Cliente </td> </tr> <% While Not rsClientes.EOF %> <tr bgcolor="#FFFFFF"> <td <td width="100"><font width="100"><font color="#471555" color="#471555" face="verdana" face="verdana" size="1">< size="1">< %=rsClientes("NomeCli") %></font</td> %=rsClientes("EmailCli") %></font</td> </font></b></div> border="1" cellpading="0" width="100%" bordercolor="#CCCCCC" cellspacing="0">

----- 110 -----

CURSO DE ASP </tr> <% rsClientes.MoveNext Wend Call fecha_conexao Set rsClientes = Nothing %> </table> </body> </html>

EXEMPLO 29 ARQUIVO CLIENTES10.ASP


Seleciona todos os campos da tabela CLIENTES1, mostra na tela todos os registros e organiza por ordem crescente atravs do campo cdigo. <% Option Explicit %> <!--#include file="bib_conexao.asp"--> <% 'Relao de clientes cadastrados Dim Conexao, rsClientes, strSQL strSQL = "SELECT * FROM Clientes1 ORDER BY Codigo" Call abre_conexao ----- 111 -----

CURSO DE ASP Set rsClientes = Conexao.Execute(strSQL) %> <html> <head> <title> Relao Completa de Clientes </title> </head> <body topmargin="0" leftmargins="0" bogcolor="#FFFFF"> <table border="1" cellpading="0" <tr> <td bgcolor="#471555" colspan="12"> <div align="center"><font color="#FFFFFF"><b>CADASTRO DE CLIENTES </b></font></div> </td> </tr> <tr bgcolor="#CCFFFF"> bordercolor="#CCCCCC" cellspacing="0">

<td width="100"> <div </td> <td width="100"> <div </font></b></div> </td> <td width="100"> <div </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Endereo </font></b></div> </td> <td width="100"> align="center"><b><font color="#003366" size="1"> CGC/CPF </font></b></div> align="center"><b><font color="#003366" size="1"> Nome align="center"><b><font color="#003366" size="1"> Cdigo </font></b></div>

----- 112 -----

CURSO DE ASP <div </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Telefone </font></b></div> </td> <td width="100"> <div </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Data Cadastro </font></b></div> </td> </tr> <% While Not rsClientes.EOF %> <tr bgcolor="#FFFFFF"> <td <td <td <td <td <td <td <td </tr> <% rsClientes.MoveNext ----- 113 ----width="100"><font width="100"><font width="100"><font width="100"><font width="100"><font width="100"><font width="100"><font width="100"><font color="#471555" color="#471555" color="#471555" color="#471555" color="#471555" color="#471555" color="#471555" color="#471555" face="verdana" face="verdana" face="verdana" face="verdana" face="verdana" face="verdana" face="verdana" face="verdana" size="1">< size="1">< size="1">< size="1">< size="1">< size="1">< size="1">< size="1">< %=rsClientes("Codigo") %></font</td> %=rsClientes("Nome") %></font</td> %=rsClientes("cgccpf") %></font</td> %=rsClientes("endereco") %></font</td> %=rsClientes("cidade") %></font</td> %=rsClientes("telefone") %></font</td> %=rsClientes("email") %></font</td> %=rsClientes("DTA_Cadastro") %></font</td> align="center"><b><font color="#003366" size="1"> email align="center"><b><font color="#003366" size="1"> Cidade

</font></b></div>

CURSO DE ASP Wend Call fecha_conexao Set rsClientes = Nothing %> </table> </body> </html>

WHERE
Seleo de campos em uma tabela de acordo com uma condio estabelecida. Esse argumento o melhor de todos, onde podemos restringir o recordset a um conjunto especfico de registros que atendam a uma condio previamente estabelecida. Cabe ressaltar que tal condio pode ser digitada diretamente na instruo SQL, capturada em um formulrio no browser do usurio ou uma varivel. O aspecto mais importante, nota-se na construo de uma condio pois preciso respeitar a sintaxe da instruo onde para campos alfanumricos utilizado o (apstrofo) tanto no incio como no final do parmetro; para campos numricos no preciso utilizar nenhum smbolo, apenas o valor (mesmo que seja uma varivel).

----- 114 -----

CURSO DE ASP SELECT campo1, campoN FROM tabela WHERE campo1 = condio... EXEMPLO 30 seleciona todos os campos da tabela clientes1 onde o estado for igual a SP. SELECT * FROM Clientes1 WHERE estado = SP Abaixo, cdigo ASP junto com o htm.

ARQUIVO CLIENTES11.ASP
<% Option Explicit %> <!--#include file="bib_conexao.asp"--> <% 'Relao de clientes cadastrados Dim Conexao, rsClientes, strSQL strSQL = "SELECT * FROM Clientes1 Where UF = 'SP' ORDER BY Codigo" Call abre_conexao Set rsClientes = Conexao.Execute(strSQL) %> <html> <head> <title> Relao de Clientes - Estado SP </title> </head> <body topmargin="0" leftmargins="0" bogcolor="#FFFFF"> <table border="1" cellpading="0" <tr> <td bgcolor="#471555" colspan="12"> <div align="center"><font color="#FFFFFF"><b>CADASTRO DE CLIENTES </b></font></div> </td> </tr> <tr bgcolor="#CCFFFF"> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Cdigo </font></b></div> </td> bordercolor="#CCCCCC" cellspacing="0">

----- 115 -----

CURSO DE ASP <td width="100"> <div align="center"><b><font color="#003366" size="1"> Nome </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> CGC/CPF </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Endereo </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Cidade </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Telefone </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> email </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Data Cadastro </font></b></div> </td> </tr> <% While Not rsClientes.EOF %> <tr bgcolor="#FFFFFF"> <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("Codigo") %></font</td> <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("Nome") %></font</td>

----- 116 -----

CURSO DE ASP <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("cgccpf") %></font</td> <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("endereco") %></font</td> <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("cidade") %></font</td> <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("telefone") %></font</td> <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("email") %></font</td> <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("DTA_Cadastro") %></font</td> </tr> <% rsClientes.MoveNext Wend Call fecha_conexao Set rsClientes = Nothing %> </table> </body> </html>

----- 117 -----

CURSO DE ASP EXEMPLO 31 seleciona todos os campos da tabela clientes1 onde o e-mail seja diferente de nulo, ou seja, exista e-mail. SELECT * FROM clientes1 WHERE email Is Not Null

ARQUIVO CLIENTES12.ASP
<% Option Explicit %> <!--#include file="bib_conexao.asp"--> <% 'Relao de clientes cadastrados com email Dim Conexao, rsClientes, strSQL strSQL = "SELECT * FROM Clientes1 WHERE email Is Not Null ORDER BY Codigo" Call abre_conexao Set rsClientes = Conexao.Execute(strSQL) %> <html> <head> <title> Relao Completa de Clientes </head> <body topmargin="0" leftmargins="0" bogcolor="#FFFFF"> <table border="1" cellpading="0" <tr> <td bgcolor="#471555" colspan="12"> <div align="center"><font color="#FFFFFF"><b>CADASTRO DE CLIENTES </b></font></div> </td> </tr> <tr bgcolor="#CCFFFF"> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Cdigo </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Nome </font></b></div> ----- 118 ----bordercolor="#CCCCCC" cellspacing="0"> com email</title>

CURSO DE ASP </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> CGC/CPF </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Endereo </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Cidade </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Telefone </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> email </font></b></div> </td> <td width="100"> <div align="center"><b><font color="#003366" size="1"> Data Cadastro </font></b></div> </td> </tr> <% While Not rsClientes.EOF %> <tr bgcolor="#FFFFFF"> <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("Codigo") %></font</td> <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("Nome") %></font</td> <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("cgccpf") %></font</td> <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("endereco") %></font</td> ----- 119 -----

CURSO DE ASP <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("cidade") %></font</td> <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("telefone") %></font</td> <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("email") %></font</td> <td width="100"><font color="#471555" face="verdana" size="1">< %=rsClientes("DTA_Cadastro") %></font</td> </tr> <% rsClientes.MoveNext Wend Call fecha_conexao Set rsClientes = Nothing %> </table> </body> </html>

GROUP BY
Esta opo permite agrupar dados de acordo com a situao, tornando a exibio mais organizada e ordenada, utilizamos em casos de resumo de dados.

----- 120 -----

CURSO DE ASP EXEMPLO 32 mostrar quantos clientes existem por estado. SELECT UF, <% %> <!--#include file="bib_conexao.asp"--> <% 'Relao de clientespor estado Dim Conexao, rsEstado, strSQL, varTotal Call abre_conexao strSQL = "SELECT UF, Count(UF) AS Total FROM Clientes1 Group BY UF ORDER BY UF" Set rsEstado = Conexao.Execute(strSQL) %> <html> <head> <title> Relao de Clientes por Estado</title> </head> <body topmargin="0" leftmargins="0" bogcolor="#FFFFF"> <table border="1" cellpading="0" cellspacing="0"> <tr bgcolor="#FF6633"> <td width="141"> <div align="center"><font color="#FFFFFF"><b>ESTADO </b></font></div> </td> <td width="118"> <div align="center"><font color="#FFFFFF"><b>TOTAL </b></font></div> </td> </tr> <% varTotal = 0 While Not rsEstado.EOF %> <tr> <td bgcolor="#FFFFFF" width="141"> ----- 121 ----width="284" bordercolor="#CCCCCC" Count (UF) AS Total From Clientes Group BY UF

Arquivo clientes13.asp
Option Explicit

CURSO DE ASP <div align="center"><b><font color="#471555" face ="Arial"><b>< %=rsEstado("UF") %></b></font></div> </td> <td bgcolor="#FFFFFF" width="118"> <div align="center"><font color="#471555" face="Arial"><b>< %=rsEstado("Total") %></b></font></div> </td> <% varTotal = varTotal + rsEstado("Total") rsEstado.MoveNext Wend %> </tr> <tr> <td bgcolor ="#FFFFFF"width="141"> <div align="center"><b>Total de Clientes:</b></div></td> <td bgcolor ="#FFFFFF"width="118"><div align="center"><b> <% response.Write varTotal rsEstado.Close Call fecha_conexao Set rsEstado = Nothing %> </b></div></td> </tr> </table> </body> </html>

----- 122 -----

CURSO DE ASP

EXEMPLO 33 Calcular departamento. SELECT depto,

mdia

dos

salrios

do

funcionrios

por

AVG(salario) AS MediaSal

From funcionarios Group BY depto

OBS.: Criar a tabela funcionarios com os seguintes campos: NOME DO CAMPO Nome Depto Funo Salrio Dta_Admisso Arquivo funcionarios.asp <% Option Explicit %> ----- 123 ----TIPO DE DADOS TEXTO TEXTO TEXTO TEXTO DATA/HORA TAMANHO 50 50 50 50

CURSO DE ASP <!--#include file="bib_conexao.asp"--> <% 'Relao da mdia dos salrios por departamento Dim Conexao, rsFuncionarios, strSQL strSQl = "SELECT depto, AVG(salario) AS MediaSal FROM funcionarios GROUP BY depto ORDER BY depto " Call abre_conexao Set rsFuncionarios = Conexao.Execute(strSQL) %> <html> <head> <title>Relao da mdia dos salrios por departamento</title> </head> <body topmargin="0" leftmargin="0" bgcolor="#FFFFFF"> <table border="1" cellpadding="0" width="393" bordercolor="#CCCCCC" cellspacing="0"> <tr> <td bgcolor="#471555" colspan="2"> <div align="center"><font color="#FFFFFF"><b>MDIA DOS SALRIOS POR DEPTO</b></font></div> </td> </tr> <tr bgcolor="#CCFFFF"> <td width="220"> <div align="center"><b>Depto</b></div></td> <td width="167"> <div align="center"><b><font color="#003366">Salrio Mdio</font></b></div> </td> </tr> <% While Not rsFuncionarios.EOF %> <tr bgcolor="#FFFFFF"> <td width="220"><font color="#471555" face="Arial" size="2">< %=rsFuncionarios("Depto")%></font> </td>

----- 124 -----

CURSO DE ASP <td width="167"><font color="#471555" face="Arial" size="2">< %=FormatNumber(rsFuncionarios("MediaSal"),2)%></font> </td> </tr> <% rsFuncionarios.MoveNext Wend Call fecha_conexao Set rsFuncionarios = Nothing %> </table> </body> </html>

EXEMPLO 34 A partir de uma pgina htm chamada relprodutos.htm, o usurio ir digitar o nome de um produto, automaticamente entra em funcionamento a pgina relprodutos.asp que ir ler o contedo do formulrio e buscar o produto dentro da tabela PRODUTOS, exibindo todo o seu contedo. Para este exemplo, crie a tabela produtos com os seguintes campos: ----- 125 -----

CURSO DE ASP

NOME DO CAMPO CodProd CodForn DescProd QuantProd ValorProd

TIPO DE DADOS Nmero Nmero Texto Nmero Moeda

TAMANHO Inteiro Longo Inteiro Longo 80 Inteiro Longo Moeda

Arquivo relprodutos.htm
<html> <head> <title> Pesquisa de Produtos </title> </head> <body bgcolor="#FFFFFF"> <form method="POST" action="relprodutos.asp"> <table width="75%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="right"><b><font face="Tahoma" size="2" color="red">Digite o nome do produto:</b></font></td> <td><input type="text" name="pesquisa" size="32"></td> </tr> <tr> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td> <input type="submit" name="Submit" value="Pesquisar"> </td> <td>&nbsp;</td> </tr> </table> </form> </body> </html>

----- 126 -----

CURSO DE ASP

Arquivo relprodutos.asp
<% Option Explicit %> <!--#include file="bib_conexao.asp"--> <% Dim Conexao, rsProdutos, strSQL, varPesquisa varPesquisa = Request.Form ("pesquisa") strSQL = "SELECT * FROM Produtos WHERE DescProd LIKE '%" & varPesquisa & "%' " strSQL= strSQL & "ORDER BY DescProd" Call abre_conexao Set rsProdutos = Conexao.Execute (strSQL) %> <html> <head> <title>Pesquisa por Produtos</title> </head> <body topmargin="0" leftmargin="0" bgcolor="#FFFFFF"> <table <tr> <td bgcolor="#47155" colspan="5"> <div align="center"><font color="#FFFFFF"><b>PESQUISA DE PRODUTOS </b></font></div> </td> </tr> ----- 127 ----border="1" cellpadding="0" width="100%" bordercolor="#CCCCCC" cellspacing="0">

CURSO DE ASP <tr bgcolor="#CCFFFF"> <td width="20%"> <div color="#003366">COD.PRODUTO</font></b></div> </td> <td width="20%"> <div color="#003366">COD.FORNECEDOR</font></b></div> </td> <td width="20%"> <div color="#003366">DESCRIO</font></b></div> </td> <td width="20%"> <div color="#003366">QUANTIDADE</font></b></div> </td> <td width="20%"> <div align="center"><b><font color="#003366">VALOR</font></b></div> </td> </tr> <% While Not rsProdutos.EOF %> <tr bgcolor="#FFFFFF"> <td <td <td <td <td </tr> <% rsProdutos.MoveNext ----- 128 ----width="20%"<font width="20%"<font width="20%"<font width="20%"<font width="20%"<font color="#471555" color="#471555" color="#471555" color="#471555" color="#471555" face="Verdana"size="1">< face="Verdana"size="1">< face="Verdana"size="1">< face="Verdana"size="1">< face="Verdana"size="1">< %=rsProdutos("CodProd")%></font></td> %=rsProdutos("CodForn")%></font></td> %=rsProdutos("DescProd")%></font></td> %=rsProdutos("QuantProd")%></font></td> %=rsProdutos("ValorProd")%></font></td> align="center"><b><font align="center"><b><font align="center"><b><font align="center"><b><font

CURSO DE ASP Wend %> </table> <div <% rsProdutos.Close Call fecha_conexao Set RsProdutos=Nothing %> </div> </body> </html> align="left"<br><b><a href="javascript:history.go(-1)"><font size="2">VOLTAR</font></a></b>

Instruo UPDATE
A instruo UPDATE permite atualizar os dados em uma tabela. Uma atualizao pode afetar um ou todos os registros, por exemplo, atualizar todos os preos em 10%, alterar o prefixo do telefone. Nunca feche o recordset quando utilizar a instruo UPDATE. SINTAXE: UPDATE tabela SET campo1 = expr1, campon = exprN WHERE condio ----- 129 -----

CURSO DE ASP Exemplo: Atualizar os salrios para 5000 na tabela funcionrios onde cargo for = GERENTE UPDATE funcionarios SET salario = 5000 WHERE cargo =gerente

EXEMPLO 35
O exemplo a seguir altera os dados do cliente selecionada na tabela. Existem 3 pginas ASP: a 1,, alteracliente.asp, exibe uma tabela com todos os clientes para que se exibe selecione os dados o do cliente cliente

ser

alterado. e

2 ,

clientes_altera2.asp, atualizao.

selecionado

permite

alterar de acordo com sua necessidade. A 3 , clientes_altera3.asp, faz a

Arquivo alteracliente.asp <% Option Explicit 'Programa 'Funo 'Analista %> <!--#include file="bib_conexao.asp"--> <% Dim strSQL, Conexao, rs, varCodCliente strSQl = "SELECT Codigo, Nome, cgccpf FROM Clientes1 order by Nome" %> <html> <body bgcolor="#FFFFFF" link="#000000" alink="#000000" vlink="#000000"> <div align="center"> <p><b><font face="verdana" size=3">CLIQUE NO NOME DO CLIENTE QUE VOC DESEJA ALTERAR...</font></b></p> <table border="0" width="72%"> <tr> <td width="100%"> <table border="1" width="100%" cellspacing="0"> <tr> <td width="68%"align="center" bgcolor="#000080"><font face="Times New Roman, Times, serif" size="2"><b><font color="#FFFFFF">NOME</font></b></font></td> ----- 130 ----: alteracliente.asp : Alterao dos dados dos Clientes da Tabela Clientes : Israel Marques Caja Jnior

CURSO DE ASP <td width="32%"align="center" bgcolor="#000080"><font face="Times New Roman, Times, serif" size="2"><b><font color="#FFFFFF">CGC/CNPJ</font></b></font></td> </tr> <% 'abre a conexo Call abre_conexao 'executa a instruo SQL Set rs=Conexao.Execute(strSQL) While not rs.EOF varCodCliente = rs("Codigo") %> <tr> <td width="68%"align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="Clientes_altera2.asp? varCodCliente=<%=varCodCliente%>"><b><%=rs("Nome")%></b></a></font></td> <td width="32%"align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><%=rs("cgccpf")%></font></td> </tr> <% rs.movenext Wend rs.Close 'fechando a Conexo call fecha_conexao set rs = Nothing %> </table> </td> </tr> </table> </div> </body> </html>

----- 131 -----

CURSO DE ASP

OBS.: Dentro desse cdigo, o Cdigo do Cliente tambm selecionado mas no exibido na tela, pois este ser o parmetro enviado para a prxima pgina. Quando o nome do cliente montado na tabela, criado um link com a prxima pgina tendo o cdigo como parmetro. interessante notar que quando se posiciona o mouse em cima do nome do cliente, no rodap da pgina aparece na linha de status o link completo. <a href="Clientes_altera2.asp?varCodCliente=<%=varCodCliente%>"><b> <%=rs("Nome")%></b></a> Arquivo clientes_altera2.asp <% Option Explicit 'Programa 'Funo alterao 'Analista %> <!--#include file="bib_conexao.asp"--> <% Dim strSQL, Conexao, rs, varCodCliente ----- 132 ----: Israel Marques Caja Jnior : clientes_altera2.asp : Mostra os dados do cliente selecionado para possvel

CURSO DE ASP Dim nome, cgccpf, endereco, cidade, uf, telefone, email, data_cad Dim dia_cad, mes_cad, ano_cad varCodCliente = Request.QueryString("varCodCliente") strSQl = "SELECT * FROM Clientes1 WHERE Codigo = " & varCodCliente 'abre a conexao call abre_conexao 'executa a instruo SQL Set rs = Conexao.Execute(strSQL) %> <html> <head> <title> ALTERAO DOS DADOS DO CLIENTES </title> <body bgcolor="#80D8A0" link="#000000" alink="#000000" vlink="#000000"> <form method="POST" action="clientes_altera3.asp" name=""> <div align="center"> <font face="Verdana" size="2"><b>ALTERAO DOS DADOS DOS CLIENTES</b></font><br><br> <table width="624"> <tr> <td align="center"> <table border="0" bgcolor="#F8C810" cellspacing="0"> <tr> <td width="460"%> <table border="0" cellpadding="2" cellspacing="0" bgcolor="#E0EC90"> <tr> <td <td><font face="verdana"> <input type="text" name="nome" value="<%=rs("nome") %>" size="25" maxlengh="50"> </font></td></tr> <tr> <td <td><font face="verdana"> <input type="text" name="cgccpf" value="< %=rs("cgccpf")%>" size="25" maxlengh="50"> ----- 133 ----align="right"><strong><font face="verdana"><small>CGC/CPF:</small></font></strong></td> align="right"><strong><font face="verdana"><small>Nome:</small></font></strong></td>

CURSO DE ASP </font></td> </tr> <tr> <td <td><font face="verdana"> <input type="text" name="endereco" value="< %=rs("endereco")%>" size="25" maxlengh="50"> </font></td> </tr> <tr> <td <td> <table border="0" cellpadding="0"> <tr> <td><font face="verdana"> <input type="text" name="cidade" %=rs("cidade")%>" size="25" maxlengh="50"> <select name="uf" size="1" class="campo"> <option value="UF"><%=rs("uf")%></option> <option value="AC">AC</option> <option value="AL">AL</option> <option value="AM">AM</option> <option value="AP">AP</option> <option value="BA">BA</option> <option value="CE">CE</option> <option value="DF">DF</option> <option value="ES">ES</option> <option value="GO">GO</option> <option value="MA">MA</option> <option value="MG">MG</option> <option value="MS">MS</option> <option value="MT">MT</option> <option value="PA">PA</option> <option value="PB">PB</option> <option value="PE">PE</option> <option value="PI">PI</option> ----- 134 ----value="< align="right"><strong><font face="verdana"><small>Cidade:</small></font></strong></td> align="right"><strong><font face="verdana"><small>Endereo:</small></font></strong></td>

CURSO DE ASP <option value="PR">PR</option> <option value="RJ">RJ</option> <option value="RN">RN</option> <option value="RO">RO</option> <option value="RR">RR</option> <option value="RS">RS</option> <option value="SC">SC</option> <option value="SP">SP</option> <option value="SE">SE</option> <option value="TO">TO</option> </select> </font></td> <td align="right"><strong><small><font face="Verdana">UF:</font></small></strong></td> <td>&nbsp; </td> </tr> </table> </td> </tr> <tr> <td <td><font face="verdana"> <input type="text" name="telefone" value="< %=rs("telefone")%> "size="25" maxlengh="30"> </font></td> </tr> <tr> <td <td><font face="verdana"> <input type="text" name="email" value="<%=rs("email") %>" size="25" maxlengh="80"> </font></td> </tr> <tr> <td face="verdana"><small>Data ----- 135 ----align="right"><strong><font align="right"><strong><font face="verdana"><small>E-mail:</small></font></strong></td> align="right"><strong><font face="verdana"><small>Telefone:</small></font></strong></td>

CURSO DE ASP do Cadastro:</small></font></strong></td> <td> <table border="0" cellpadding="0" height="23"> <tr> <td height="21" width="50"> <select name="dia_cad" size="1" class="campo"> <option value="Dia">dia</option> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <option value="04">04</option> <option value="05">05</option> <option value="06">06</option> <option value="07">07</option> <option value="08">08</option> <option value="09">09</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> ----- 136 -----

CURSO DE ASP </select> </td> <td height="21" width="66"> <select name="mes_cad" size="1" class="campo"> <option value="Ms">ms</option> <option value="01">Jan</option> <option value="02">Fev</option> <option value="03">Mar</option> <option value="04">Abr</option> <option value="05">Mai</option> <option value="06">Jun</option> <option value="07">Jul</option> <option value="08">Ago</option> <option value="09">Set</option> <option value="10">Out</option> <option value="11">Nov</option> <option value="12">Dez</option> </select> </td> <td height="21" width="101"> <div align="right"><strong><small><font face="Verdana">Ano(aaaa):</font></small></strong></div> </td> <td height="21" width="67"> <input type="text" name="ano_cad" value="< %=Year(rs("DTA_Cadastro"))%>" size="4" maxlength="4"> </td> </tr> </table> </td> </tr> <tr> <td align="right">&nbsp;</td> <td valign="top">&nbsp;</td> </tr> </table> </td> </tr> ----- 137 -----

CURSO DE ASP </table> </td> </tr> <tr> <td align="center"><input type="submit" value="Salvar" name="Salvar" class="vai"> <input type="button" value="Retornar" onclick="javascript:history.go(-1)"> </td> </tr> </table> </div> <input type="hidden" name="varCodCliente" value="<%=varCodCliente%>"> </form> <% rs.Close 'fecha a conexo Call fecha_conexao set rs= Nothing %> </body> </html>

----- 138 -----

CURSO DE ASP

Arquivo Clientes_altera3.asp
<% Option Explicit 'Programa 'Funo 'Analista %> <!--#include file="bib_conexao.asp"--> <% Dim strSQL, Conexao, rs, varCodCliente Dim nome, cgccpf, endereco, cidade, uf, telefone, email, data_cad Dim dia_cad, mes_cad, ano_cad varCodCliente = Request.Form("varCodCliente") nome= Request.Form("nome") cgccpf= Request.Form("cgccpf") endereco= Request.Form("endereco") cidade= Request.Form("cidade") uf= Request.Form("uf") telefone= Request.Form("telefone") email = Request.Form("email") ----- 139 ----: clientes_altera3.asp : Altera o registro da tabela Clientes1 : Israel Marques Caja Jnior

CURSO DE ASP dia_cad = Request.Form ("dia_cad") mes_cad = Request.Form ("mes_cad") ano_cad = Request.Form ("ano_cad") data_cad = DateSerial(ano_cad, mes_cad, dia_cad) strSQL = "UPDATE Clientes1 SET " strSQL = strSQL & "Nome = '" & Nome & "', " strSQL = strSQL & "cgccpf = '" & cgccpf & "', " strSQL = strSQL & "Endereco = '" & Endereco & "', " strSQL = strSQL & "Cidade = '" & Cidade & "', " strSQL = strSQL & "Uf = '" & Uf & "', " strSQL = strSQL & "Telefone = '" & Telefone & "', " strSQL = strSQL & "email = '" & email & "', " strSQL = strSQL & "DTA_Cadastro = #" & data_cad & "# " strSQL = strSQL & "WHERE Codigo = " 'abre a conexo Call abre_conexao 'executa a instruo SQL Set rs=Conexao.Execute(strSQL) 'fechando a Conexo call fecha_conexao set rs = Nothing %> <html> <head> <title> CONFIRMAO DE ALTERAO </title> </head> <body bgcolor="#000099"> <div align="center"> <p>&nbsp;</p> <p><font color="#FF6633" face="Verdana"><b><font size="4">Cliente Alterado com<br><font <br> <a </div> </body> </html> ----- 140 ----href="alteracliente.asp"><font color="#FF6633" face="verdana" size="2"><b> voltar</b></font></a></p> color="#FFFFFF" size="6">S U C E S S O ! ! ! </font></font></b></font><br> & varCodCliente

CURSO DE ASP

Instruo DELETE
A instruo DELETE permite a excluso de dados em uma tabela. Nunca feche o recordset quando utilizar a instruo UPDATE. SINTAXE: DELETE FROM tabela WHERE condio EXEMPLO: Delete todos os funcionrio com salrio maior ou igual a 1000 e depto igual a RH da tabela funcionrios. DELETE FROM funcionrios WHERE salrio >=1000 AND Depto = RH O exemplo a seguir exclui na tabela de clientes. Existem 3 pginas ASP: a 1, excluiclientes.asp aquele que exibe deseja a lista de a clientes 2,

para

que

usurio exibe

selecione

excluir;

clientes_exclui2.asp,

todos os dados do cliente selecionado e solicita a confirmao; a 3, clientes_exclui2.asp, deleta efetivamente o cliente na tabela clientes.

Arquivo excluiclientes.asp
<% Option Explicit 'Programa 'Funo 'Analista : excluiclientes.asp : Excluso de Clientes da Tabela Clientes : Israel Marques Caja Jnior ----- 141 -----

CURSO DE ASP %> <!--#include file="bib_conexao.asp"--> <% Dim strSQL, Conexao, rs, varCodCliente strSQl = "SELECT Codigo, Nome, cgccpf FROM Clientes1 order by Nome" %> <html> <body bgcolor="#FFFFFF" link="#000000" alink="#000000" vlink="#000000"> <div align="center"> <p><b><font face="verdana" size=3">CLIQUE NO NOME DO CLIENTE QUE VOC DESEJA EXCLUIR...</font></b></p> <table border="0" width="72%"> <tr> <td width="100%"> <table border="1" width="100%" cellspacing="0"> <tr> <td face="Times New <td face="Times </tr> <% 'abre a conexo Call abre_conexao 'executa a instruo SQL Set rs=Conexao.Execute(strSQL) While not rs.EOF varCodCliente = rs("Codigo") %> <tr> <td width="68%"align="left"><font Helvetica, sans-serif" size="2"><a face="Verdana, Arial, href="Clientes_exclui2.asp? New width="68%"align="center" Roman, Times, bgcolor="#000080"><font size="2"><b><font serif"

color="#FFFFFF">NOME</font></b></font></td> width="32%"align="center" Roman, Times, bgcolor="#000080"><font size="2"><b><font serif"

color="#FFFFFF">CGC/CNPJ</font></b></font></td>

varCodCliente=<%=varCodCliente%>"><b><%=rs("Nome")%></b></a></font></td> <td width="32%"align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><%=rs("cgccpf")%></font></td>

----- 142 -----

CURSO DE ASP </tr> <% rs.movenext Wend rs.Close 'fechando a Conexo call fecha_conexao set rs = Nothing %> </table> </td> </tr> </table> </div> </body> </html>

----- 143 -----

CURSO DE ASP OBS.: Dentro desse cdigo, o Cdigo do Cliente tambm selecionado mas no exibido na tela, pois este ser o parmetro enviado para a prxima pgina. Quando o nome do cliente montado na tabela, criado um link com a prxima pgina tendo o cdigo como parmetro. interessante notar que quando se posiciona o mouse em cima do nome do cliente, no rodap da pgina aparece na linha de status o link completo. <a href="Clientes_exclui2.asp?varCodCliente=<%=varCodCliente%>"><b> <%=rs("Nome")%></b></a> Arquivo clientes_exclui2.asp <% Option Explicit 'Programa 'Funo excluso 'Analista %> <!--#include file="bib_conexao.asp"--> <% Dim strSQL, Conexao, rs, varCodCliente varCodCliente = Request.QueryString("varCodCliente") strSQL = "SELECT * FROM Clientes1 WHERE Codigo = " & varCodCliente 'abre a conexo Call abre_conexao 'executa a instruo SQL Set rs=Conexao.Execute(strSQL) %> <html> <body bgcolor="#80D8A0" link="#000000" vlink="#000000" alink="#000000"> <form method="POST" action="clientes_exclui3.asp"> <div align="center"> <table border="0" width="440" cellspacing="0" cellpadding="5"> <tr> <td align="center"> <table border="0" bgcolor="#FFFFFF" cellspacing="0" cellpadding="5" width="224"> <tr> : Israel Marques Caja Jnior : excluiclientes2.asp : Mostra os dados do registro solicitado para uma posterior

----- 144 -----

CURSO DE ASP <td align="center" bgcolor="#E03C30"><b><font face="Times New Roman, Times, </tr> <td><b><font face="Verdana" size="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> Nome: <%=rs("nome") %><br><br> CGC/CPF: <%=rs("cgccpf") %><br><br> Endereo: <%=rs("Endereco") %><br><br> Cidade: <%=rs("Cidade") %><br><br> UF: <%=rs("UF")%><br><br> Telefone: <%=rs("Telefone") %><br><br> E-mail: <%=rs("email") %><br><br> Data de Cadastro: < %=rs("DTA_Cadastro")%></font></font></b></td> </tr> </table> </tr> <tr> <td align="center"> <table border="0" width="20" cellpadding="2"> <tr> <td width="100%" bgcolor="#FF0000"><font face="Verdana" size="2"><b> <input type="submit" name="B1" value="excluir"> </b></font></td> <td width="100%"></td> <td width="100%" bgcolor="#008000"><font face="Verdana" size="2"><b> <input type="button" value="no excluir" name="B3" onClick="javascript:history.go(-1)"> </b></font></td> </tr> ----- 145 ----serif" size="3" color="#FFFFFF"> Cliente a ser excludo </font></b></td>

CURSO DE ASP </table> </tr> </table> </div> <input type="hidden" name="varCodCliente" value="<%=varCodCliente%>"> </form> <% rs.Close 'fechando a Conexo call fecha_conexao set rs = Nothing %> </body> </html>

----- 146 -----

CURSO DE ASP

Arquivo clientes_exclui3.asp
<% Option Explicit 'Programa 'Funo 'Analista %> <!--#include file="bib_conexao.asp"--> <% Dim strSQL, Conexao, rs, varCodCliente varCodCliente = Request.Form("varCodCliente") strSQL = "DELETE FROM Clientes1 WHERE Codigo = " & varCodCliente 'abre a conexo Call abre_conexao 'executa a instruo SQL Set rs=Conexao.Execute(strSQL) 'fechando a Conexo call fecha_conexao set rs = Nothing %> <html> <head> <title> CONFIRMAO DE EXCLUSO </title> </head> <body bgcolor="#000099"> <div align="center"> <p>&nbsp;</p> <p><font color="#FF6633" face="Verdana"><b><font size="4">Cliente Excludo com<br><font <a </div> </body> </html> color="#FFFFFF" size="6">S U C E S S O ! ! ! </font></font></b></font><br><br> href="excluiclientes.asp"><font color="#FF6633" face="verdana" size="2"><b> voltar</b></font></a></p> : excluiclientes3.asp : Exclui definitivamente o registro da tabela Clientes : Israel Marques Caja Jnior

----- 147 -----

CURSO DE ASP

----- 148 -----

CURSO DE ASP

APNDICE 01 COMO CONSTRUIR UM WEBSITE ?


Este um dos mais controvertidos temas da Internet de hoje. Para se construir um site, necessrio mais do que o conhecimento das tecnologias envolvidas. Um site est intrinsecamente ligado rea de marketing de uma empresa. Processos como a anlise do pblico e dos servios que sero oferecidos so fundamentais para assegurar o sucesso do site e o departamento de desenvolvimento da empresa normalmente no capaz de tomar este tipo de deciso. A anlise e o planejamento costumam ser distribudos ao longo de quatro etapas: concepo, planejamento, desenvolvimento e implantao. Concepo A concepo de um website envolve principalmente todo o trabalho de identificar seu foco, definir a identidade visual, o padro grfico, o pblico-alvo e os servios a serem prestados. Muitas vezes, a etapa de concepo a mais negligenciada. Entretanto, essa falta de ateno no incio do processo pode causar muita dor de cabea nas etapas seguintes. A concepo de um website deveria ser a etapa mais bem cuidada, para evitar reelaboraes posteriores. A concepo o momento adequado para realizar definies importantssimas, que vo determinar o sucesso ou o fracasso do site. A concepo de um website deve basicamente tentar responder s seguintes perguntas: "qual o pblico-alvo do website?"; "que tipo/verso de browser esse pblico-alvo normalmente utiliza?"; "qual o tipo de conexo Internet mais comum desse pblico-alvo?"; "quais seriam os desejos desse pblicoalvo?". Com as respostas a tais perguntas, possvel determinar o foco do website, seu padro visual, quais os servios a serem prestados etc. Planejamento O curioso observar que, aps a implantao do website, algumas dessas definies so revistas e modificadas. Da vem a falsa afirmao de que no adianta conceber se o produto pode ser alterado. Isso no verdade, pois uma concepo bem feita reduz a necessidade de ajustes posteriores.

----- 149 -----

CURSO DE ASP A fase de planejamento utiliza as respostas e definies criadas na

concepo para estabelecer o prazo para desenvolvimento, os recursos de programao que sero adotados, a equipe de trabalho, a poltica de backup, a coleta e adaptao de dados, os recursos inerentes hospedagem etc. Muitas vezes, o planejamento confundido com a concepo, especialmente em projetos discutido de pequeno que o de porte. se Em projetos seja o feito que envolvam gerente do uma do site. equipe, projeto Com e fundamental planejamento iniciar pelo

antes

desenvolvimento

isso,

novamente economiza-se em reelaborao e evita-se o atraso do projeto. Nas empresas especializadas no desenvolvimento de websites, o trabalho de planejamento crucial. Na verdade, para fornecer o oramento ao cliente e fechar a venda do servio, necessrio j possuir uma estimativa de prazo, equipe, recursos etc. Como solucionar? A grande maioria trabalha da seguinte forma: concebe o site e, com base em experincias prvias, estima o custo do servio. Acaba-se fazendo uma espcie de "pr-planejamento", que permite calcular o custo o mais prximo possvel da realidade. Existem riscos nessa estratgia? Sim, claro, mas essa ainda costuma ser a forma mais adequada de se fechar o negcio, principalmente porque a Web ainda muito recente, muitas vezes de difcil compreenso para pessoas que no lidam diretamente com ela, mas que aprovam recursos nas empresas. Desenvolvimento O desenvolvimento costuma ser a etapa mais desgastante e prolongada. Todos os recursos anteriormente planejados so desenvolvidos e implementados. importantssimo tambm que a poltica de backup definida anteriormente seja seguida risca, para no se correr o risco de perder parcelas de trabalho j desenvolvidas. O desgaste normalmente fica por conta das dificuldades impostas pelas limitaes do ambiente Web e das diferentes verses de browsers (alguns detalhes insistem em surgir somente durante o desenvolvimento!) e dos ajustes, muitas vezes solicitados pelo cliente, seja ele externo ou interno. Durante o desenvolvimento na equipe. so de Isso um website, ocorre muito porm comum ocorrerem do por

divergncias

porque

vrios

aspectos executados

desenvolvimento

intimamente

relacionados,

diferentes profissionais. Um dos exemplos clssicos entre o webdesigner e o desenvolvedor de HTML. Como a linguagem HTML impe severas restries ao ----- 150 -----

CURSO DE ASP webdesign, como parmetros de alinhamento, uso de fontes etc, no raro ocorrerem conflitos do tipo: "temos que dar um jeito nesse html!", ou "essas imagens no vo se adequar ao cdigo!". Mas existe outro tipo de problema que, muitas vezes, pode impactar no desenvolvimento. quando se descobre que aquele recurso planejado no vai atender plenamente a determinada funo. Isso geralmente ocorre porque, com a velocidade com que as tecnologias vm evoluindo, o desejo de se implantar um recurso mais recente e eficaz esbarra com a capacidade de interpretao dos browsers. Outra preocupao importantssima deve ser com o cronograma. Muitas vezes, a falta de experincia da equipe em determinado tipo de desenvolvimento pode gerar atrasos, com conseqentes desgastes. Ainda por cima se est sempre sujeito interferncia do cliente, dando sugestes, modificando informaes etc. Na etapa de desenvolvimento, o trabalho de webdesign funciona a pleno vapor, materializando tudo aquilo que foi concebido e planejado. Importante ressaltar que nem todos os elementos grficos porventura j existentes se adequam perfeitamente Web. Devido a suas particularidades, a Web muitas vezes obriga que alguns grficos utilizados em impressos sejam refeitos para que possam ser adaptados ao padro visual do projeto.

A elaborao do contedo, dos textos e informaes que faro parte do website, tambm seguem esse mesmo princpio. Na verdade, os textos so muito suscetveis a alteraes para serem adequados ao pblico da Internet e s caractersticas da rede, como por exemplo o fato de ser desagradvel a leitura de textos longos na tela do computador. Erros de portugus causam uma imagem muito negativa. Ainda que seja um projeto bem simples, feito por uma s pessoa, erros de portugus no devem ser cometidos, pois poucas coisas podem passar maior descrdito em um website. claro que, em sites muito longos, torna-se quase impossvel a eliminao de 100% dos erros. Mas esse um trabalho que merece ateno especial.

----- 151 -----

desenvolvimento aplicaes de

de

um

site

geralmente

envolve

CURSO DE ASP criao de pginas de webdesign em e

dinmicas, que so verdadeiras aplicaes. A equipe de desenvolvimento dessas precisa HTML. estar As integrada equipe ser desenvolvimento aplicaes podem feitas diversas

linguagens - ASP, LiveWire, Perl, Cold Fusion etc - mas, independentemente da soluo adotada, sua confeco bem mais complicada que a do cdigo HTML. Para se evitar erros, as aplicaes devem ser exaustivamente testadas antes da publicao do site. Testes Antes de finalizar completamente o projeto, inicia-se o perodo de testes, no qual o website navegado e avaliado pela equipe que o desenvolveu. Links que no estejam funcionando, imagens que no carregam, erros de script, simulaes de interatividade com CGIs, enfim, tudo precisa ser testado, preferencialmente com diferentes verses de browsers e outros sistemas operacionais. Erros simples, como algumas imagens que no carregam, podem comprometer a credibilidade do projeto. Seguramente, esse tipo de problema faz com que passe pela cabea das pessoas coisas do tipo: "se eles no se preocuparam nem com as imagens, ser que o website mesmo srio?". Outro ponto importante avaliar se o tempo de carregamento da pgina est adequado, imaginando a diversidade de conexes que o pblico-alvo pode ter. Implantao Finalmente, ao trmino do desenvolvimento vem a implantao. Realizados os testes, colocam-se os arquivos nos respectivos diretrios do servidor Web, referente ao seu domnio. Essa implantao tambm demanda testes de acesso, pois nem sempre se consegue reproduzir, no desenvolvimento, o mesmo ambiente do servidor Web definitivo, principalmente em relao s pginas dinmicas.

Disponibilizao O que fazer depois que o site est desenvolvido? preciso hosped-lo em um computador que possua um servidor Web e uma conexo discada com a Internet. A plataforma utilizada neste computador precisa ser compatvel com o site desenvolvido. Isto , se o site acessa uma base de dados que somente ----- 152 -----

CURSO DE ASP funciona no Windows NT, o PC que vai hospedar o site deve utilizar o Windows NT como sistema operacional. Se usa a soluo de desenvolvimento LiveWire, o servidor Web deve ser da Netscape. Entretanto, alguns sites so desenvolvidos de forma a funcionar em

quaisquer servidores Web, ou seja, sem tecnologias proprietrias. Se o responsvel pelo site deseja hosped-lo em um provedor de presena, essa a situao ideal. Como o site no est preso a uma tecnologia especfica, pode-se procurar o provedor que oferea o melhor servio e possua um preo adequado. Dificilmente, exemplo, so entretanto, tecnologias o site utiliza em somente sua padres Mas abertos, se forem

independentes de plataforma. As solues de acesso a bases de dados, por proprietrias maioria. utilizadas somente as tecnologias mais difundidas, como por exemplo o ASP e o Perl, no ser difcil encontrar um bom provedor para o site. A produo e a disponibilizao de um website so aspectos interligados, especialmente para sites que possuam aplicaes Web. s vezes, difcil decidir qual plataforma utilizar, j que cada uma tem suas vantagens e desvantagens. Algumas vezes, o cliente j possui uma determinada plataforma instalada em sua empresa, ou por alguma razo j decidiu em que provedor vai hospedar o site. Nesses casos, o desenvolvimento do mesmo deve se basear na plataforma disponvel. importante destacar que a disponibilizao no uma etapa estanque, nem possui, efetivamente, uma concluso. Uma vez disponibilizado definitivamente o website, a preocupao com a integridade do contedo, a velocidade de acesso pelos usurios, a performance do servidor e at mesmo uma eventual atualizao do DNS passa a fazer parte do dia-a-dia da sua administrao. Supondo um website profissional, ao nome com de nome de domnio como a prprio, algumas dos

informaes

relativas

domnio,

nomenclatura

servidores de DNS e seus respectivos endereos IP, devem ser informadas Fapesp, quando do registro. Se o nome de domnio associado ao website estiver configurado em outro servidor de DNS diferente do indicado no

----- 153 -----

CURSO DE ASP registro da Fapesp, o site no ser acessado pelo seu nome, mas somente pelo seu endereo IP. Sendo assim, de extrema importncia que se mantenham atualizadas essas informaes, tanto na Fapesp como no servidor de DNS responsvel pelo nome de domnio do website. No so raros os casos nos quais determinada URL no consegue ser acessada devido a falhas de configurao nesses servidores de DNS. Administrao No basta desenvolver e disponibilizar o website. um grande equvoco imaginar que deixando o website prpria sorte, ele ter seu funcionamento sempre perfeito e ser acessado indefinidamente pelos usurios. At mesmo porque quem navega pela Web freqentemente possui um alto senso crtico e est sempre na expectativa de encontrar contedo atual e compatvel com o propsito do site. Mesmo em se tratando de empresas, bastante comum encontrar websites que parecem abandonados, como rfos que no tm a quem recorrer. Se for um simples website pessoal, at compreensvel que no receba atualizao adequada, mas para um website corporativo, isso imperdovel. A deciso de se produzir um site deve contemplar est esse aspecto que ele de est administrao perfeito ou posterior. No porque ele pronto

atualizado. At porque, como foi dito anteriormente, algumas definies quando da concepo de um website podem ser (e muitas vezes so!) alteradas ao longo de sua existncia. impressionante a predisposio dos usurios em interagir, enviando emails, preenchendo formulrios, utilizando os recursos disponveis para expressar suas crticas e sugestes. Atravs dessa interao, pode-se chegar concluso de que alguns recursos podem no estar adequados, de que o servio disponibilizado no est sendo efetivamente percebido como til, de que a navegao no est funcionando da forma planejada, ou at mesmo descobrir alguma falha primria.

----- 154 -----

CURSO DE ASP Um site uma empresa A maneira mais fcil de se visualizar a necessidade da administrao de um website imagin-lo como uma empresa. E, na concepo de vrios especialistas, realmente o . O website uma iniciativa capaz de gerar auto-sustento, lucros, e at mesmo funcionar como empresa, como o caso do Cad? , da Amazon e de tantos outros sites que funcionam como empresas. Como todo negcio precisa de uma boa administrao, um website no seria diferente. Mesmo no caso de um website institucional, sem nenhum tipo de transao comercial envolvida, a administrao do mesmo no pode ser negligenciada, pois o contedo deve sempre apresentar informaes atuais e consistentes e servios devem ser adicionados ou readequados. Estatsticas de acesso No aspecto de webmarketing, importantssimo o acompanhamento e anlise dos dados estatsticos de acesso ao site. Essas informaes, com a devida consistncia, se constituem na mais poderosa ferramenta para consolidar o sucesso de um website. Os programas que cumprem essa finalidade, como o Webtrends , permitem que se verifiquem as pginas mais acessadas, com o requinte nmero de de informar acessos, os horrios vrias de pico, quanto tempo cada usurio permanece em cada pgina e no total do site, de qual regio vem o maior entre outras informaes importantes.

Alguns dados so to teis e obtidos to rapidamente que os ajustes de rumo de um website podem ser feitos com enorme agilidade. Mas, para isso realmente necessria uma boa administrao. Diferentemente de outras mdias, a Web encerra em si s a capacidade de, alm de fechar negcios, permitir a aferio de sua audincia e funcionalidade. Essa pode ser uma grande vantagem, se comparada a mdias como TV, rdio e jornal, no sentido de permitir empresa maximizar com agilidade as aes corretas e tambm reduzir quaisquer efeitos negativos. As outras mdias dependem de algum apoio externo, como um instituto de pesquisa, para aferir a receptividade de uma campanha, que, por sinal, tem uma longevidade bastante inferior a um website.

----- 155 -----

CURSO DE ASP Atendimento via e-mail Alm de tudo isso, a interao que o website estabelece com o usurio deve encontrar uma rpida resposta. Ou seja, pouco adianta um belo website se os e-mails enviados pelos usurios no so respondidos. Muitas vezes, as empresas no oferecem o mnimo na administrao do website, que responder s solicitaes dos usurios. Entretanto, a expectativa que, medida que a Web for se tornando cada vez mais profissional, esse tipo de postura se torne rara. Mesmo porque os websites que no correspondem demanda de interao que a Web impe, acabam por restringir, eles mesmos, o seu sucesso. Aspectos de hospedagem A deciso do local de hospedagem de um site corporativo muito importante. Quando uma empresa decide estabelecer sua presena na Internet, certamente deseja que seu site esteja disponvel para seus clientes sem interrupes e com um desempenho adequado. Ou seja, sempre que um cliente desejar ver uma pgina da empresa, essa pgina dever estar disponvel e ser visualizada rapidamente. Para que isso seja possvel, o site deve estar hospedado numa mquina (servidor Web) veloz, estvel e com uma tima conexo com a Internet. Como se deve analisar os principais aspectos que interferem em uma hospedagem? Velocidade e estabilidade Uma mquina veloz fundamental para um bom desempenho do servidor Web, software encarregado de buscar as pginas no disco rgido e entreg-las ao browser do usurio. A velocidade da CPU e a quantidade de memria necessria vai depender do nmero de acessos simultneos ao site, do nmero de sites hospedados na mesma mquina e do sistema operacional e servidor Web utilizados. A estabilidade do computador e da conexo do mesmo com a Internet muito importante, pois se a mquina parar de funcionar ou se a conexo for interrompida, os usurios da Internet no conseguiro acessar o site. A escolha de um sistema operacional confivel e o monitoramento constante da mquina so pr-requisitos para uma hospedagem de qualidade. Alm disso, o

----- 156 -----

CURSO DE ASP uso de equipamentos de suporte mquina, como no-breaks, aumentam a

confiabilidade do servio.

Largura de banda Um aspecto importantssimo da hospedagem de um site a velocidade da conexo do mesmo com a Internet. De nada adianta hosped-lo numa mquina veloz e estvel se no houver largura de banda suficiente para que todos os usurios interessados acessem suas pginas com velocidade. Na maior parte das vezes, de interessante servios para as empresas hospedar em seus sites em de provedores empresas especializadas hospedagem

informaes para a Internet. Provedores de servios profissionais, como a Embratel com seus servios de hospedagem de websites, estaro sempre preocupados com o desempenho de suas mquinas e estaro monitorando permanentemente a carga de trabalho de cada uma, assim como a estabilidade e a ocupao de suas conexes Internet. Existe um considervel ganho de performance na hospedagem de sites em mquinas maioria ligadas dos diretamente do ao backbone Tambm onde se encontra conectada sites a em usurios site. prefervel hospedar

provedores de servios que estejam conectados ao mesmo backbone da maioria dos usurios. Desta forma, o acesso ao site se torna bem mais veloz, e o nmero de clientes que desistem de esperar pelas pginas se reduz bastante. Software compatvel Apesar da velocidade e estabilidade das mquinas e da qualidade da conexo serem fatores muito importantes na escolha de um provedor de servios, h outras caractersticas que tambm necessitam ser analisadas. A maior parte das pginas corporativas utiliza algum tipo de aplicao Web, seja para ----- 157 -----

CURSO DE ASP fazer consultas a bases de dados, para enviar mensagens de correio

eletrnico ou para acessar arquivos-texto. Para que estas aplicaes possam ser instaladas, necessrio que o provedor de servios tenha suporte s mesmas. Por exemplo, se o site utiliza a tecnologia Cold Fusion, da empresa

Allaire, necessrio que o servidor de aplicaes do Cold Fusion esteja instalado juntamente do servidor Web utilizado. Algumas aplicaes e bases de dados somente funcionam em determinadas plataformas, como Windows NT ou um tipo qualquer de Unix. Assim, o provedor de servios escolhido deve suportar todas as exigncias do site Web em questo, inclusive com um sistema operacional compatvel com as necessidades. Segurana de dados Com tantos aspectos importantes na hospedagem de um site, um deles tem ganho extrema relevncia nos ltimos tempos: segurana. Quase todos os outros aspectos so relativamente simples de se avaliar e comparar. Porm, quando se fala em segurana de dados, o assunto pode ficar mais complexo. Como saber que se determinado hospedando provedor de servios site , j de sofreu, fato, ou sofre So

regularmente, algum tipo de ataque? Ou mais complicado: como testar se o sistema est determinado seguro? questes extremamente delicadas, cuja soluo adotada hoje pode no mais ser eficaz amanh, com novas tecnologias surgindo a cada dia. A segurana um aspecto to controvertido que at mesmo empresas de grande porte, eventualmente possuindo estrutura prpria de conexo Internet, optam por hospedar seus sites em provedores de servios especializados, para evitar uma "porta de entrada" na sua conexo. Com isso, essas empresas podem contar com a infra-estrutura de segurana do Provedor, que passa a ser responsvel pela integridade do contedo do respectivo site.

Aqui ou no exterior? Fisicamente empresas falando, pode-se decidem hospedar por uma pgina seus em qualquer em lugar do de planeta, deixando-a disposio de toda a Internet. Por isso, algumas brasileiras hospedar sites provedores servios norte-americanos. Entretanto, como o pblico-alvo dos sites ----- 158 -----

CURSO DE ASP brasileiros est primordialmente no Brasil, essa opo pode no ser muito interessante. Apesar de termos acesso a qualquer parte da Internet, normalmente mais rpido acessar informaes prximas, hospedadas num backbone local. Antes de se optar por um provedor distante, deve-se testar amplamente seus servios e analisar bem o custo/benefcio. tambm importante lembrar que essas empresas no esto submetidas s leis brasileiras, como o Cdigo de Defesa do Consumidor, e pode-se fazer muito pouco em caso de problemas no servio. Cobrana A forma de cobrana do servio de hospedagem varia de empresa para empresa. Algumas cobram apenas pelo espao em disco ocupado pelas pginas, enquanto outras site. a A cobram maioria pela do de utilizao provedores um nome de do de link servios (quantidade tambm de informaes por servios (do tipo trafegadas) ou pelo nmero de acessos - hits - aos arquivos que compem o cobra o considerados especiais, como o uso de aplicaes ou configurao domnio prprio para site www.empresa.com.br). muito importante a utilizao de um nome de domnio prprio em sites corporativos. Isto , o site deve ser localizado pelo nome da empresa ou um nome caracterstico qualquer, no pelo nome do provedor de servios. Por exemplo, se a "Empresa X" decide criar um site, o endereo do site deve ser "www.empresaX.com.br" ou algum nome similar que facilite aos clientes ach-lo. O nome no deve ser "www.provedorY.com.br/empresaX", pois os usurios tero maior dificuldade em memoriz-lo, alm da possibilidade de eles perceberem essa soluo como uma imagem de pouco profissionalismo. Alm disso, se a "Empresa X" no tiver um nome de domnio prprio, toda vez que mudar de provedor ter de mudar o endereo de seu site. A opo pela hospedagem sem um domnio prprio pode ser at interessante para pessoas fsicas que querem disponibilizar contedo mas no podem dispor dos custos para o registro de um nome exclusivo. A maioria dos provedores de acesso oferece a seus usurios hospedagem gratuita, dentro de certas limitaes. Com esse fim, existem empresas especficas como a ----- 159 -----

CURSO DE ASP americana GeoCities que tambm oferecem hospedagem gratuita em troca de propaganda no site ali hospedado.

----- 160 -----

CURSO DE ASP BIBLIOGRAFIA SITES DE REFERNCIA

GUIA DE REFERNCIA ASP EDITORA ATUAL APS EDITORA MODERNA WWW.ESTUDEHTML.COM.BR WWW.IMASTERS.COM.BR WWW.TIMASTERS.COM.BR WWW.OSITE.COM.BR WWW.SUPERDOWNLOADS.COM.BR WWW.GEEK.COM.BR WWW.BABBO.COM.BR WWW.WEBSITEPROJECT.KIT.NET WWW.W3C.COM

----- 161 -----