Portal Chamar Táxi

Programação em ASP

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Criação de um novo registro



Forma simples de introduzir novos elementos na tabela. Exemplos práticos.

Por Rubén Alvarez




Neste caso o que buscamos é criar, a partir dos dados recebidos de um formulário, um novo registro em nossa tabela clientes. Teremos então, dois arquivos diferentes, um que poderia ser um HTML puro no qual introduzimos o formulário a preencher e que nos envia ao segundo, um script muito parecido ao previamente visto para realizar uma seleção. Aqui estão os dois scripts:


<HTML>
<HEAD>
<TITLE>Inserir.html</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Inserir um registro</h1>
<br>
<FORM METHOD="POST" ACTION="inserir.asp">
Nombre<br>
<INPUT TYPE="TEXT" NAME="nome"><br>
Teléfono<br>
<INPUT TYPE="TEXT" NAME="telefone"><br>
<INPUT TYPE="SUBMIT" value="Inserir">
</FORM>
</div>
</BODY>
</HTML>


<HTML>
<HEAD>
<TITLE>Inserir.asp</TITLE>
</HEAD>
<BODY>

<%
'Recolhemos os valores do formulário
nome=Request.Form("nome")
telefone= Request.Form("telefone")

'Instanciamos e abrimos nosso objeto conexão
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Minhabase"

'Agora criamos a sentença SQL
sSQL="Insert Into Clientes (nome,telefone) values ('" & nome & "','" & telefone & "')"

'Executamos a ordem
set RS = Conn.Execute(sSQL)
%>

<h1><div align="center">Registro Inserido</div></h1>
<div align="center"><a href="lectura.asp">Visualizar o conteúdo da base</a></div>

<%
'Fechamos o sistema de conexão
Conn.Close
%>

</BODY>
</HTML>


Como pode ser visto, a forma de operar é idêntica à vista anteriormente para o display de uma tabela. Neste caso introduzimos um link a este primeiro script de leitura para ver como as mudanças se tornaram efetivas.

A construção da sentença SQL se faz por fusão dos distintos elementos constitutivos. A forma de fundi-los mediante o símbolo &. Tudo que seja texto tem que ir entre aspas. Seria interessante introduzir uma linha suplementaria em seu código para imprimir a sSQL formada. A linha seria do seguinte tipo:

Response.Write sSQL

Esta linha seria situada evidentemente depois de haver construído a sentença.



 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Atualização de um registro existente




Sentenças SQL para realizar atualizações na tabela.

Por Rubén Alvarez





Para mostrar como se atualiza um registro presente em nossa base de dados, vamos faze-lo a partir de um caso um pouco mais complexo para começarmos a nos familiarizar com estas operações. Realizaremos dois scripts que permitem mudar o numero de telefone das distintas pessoas presentes em nossa base. O nome destas pessoas, assim como o novo número de telefone, serão recolhidos por meio de um formulário.

O arquivo do formulário vai ser desta vez um script ASP no qual efetuaremos uma chamada a nossa base de dados para construir um menu desdobrável onde apareçam todos os nomes. A coisa ficaria assim:

<HTML>
<HEAD>
<TITLE>Atualizar1.asp</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Atualizar um registro</h1>
<br>

<%
'Instanciamos e abrimos nosso objeto conexao
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Minhabase"
%>

<FORM METHOD="POST" ACTION="atualizar2.asp">
Nombre<br>
<%
'Criamos a sentença SQL e a executamos
sSQL="Select nome From clientes Order By nome"
set RS = Conn.Execute(sSQL)
%>
<select name="nome">
<%
'Geramos o menu desdobravel
Do While not RS.eof%>
<option><%=RS("nome")%>
<%RS.movenext
Loop
%>
</select>
<br>
Telefone<br>
<INPUT TYPE="TEXT" NAME="telefone"><br>
<INPUT TYPE="SUBMIT" value="Atualizar">
</FORM>
</div>

</BODY>
</HTML>


A maneira de operar para construir o menu desdobrável é a mesma que para visualizar a tabela. De novo empregamos um loop Do While que nos permite mostrar cada uma das opções.

O script de atualização será muito parecido ao de inserção:

<TITLE>Atualizar2.asp</TITLE>
</HEAD>
<BODY>

<%
'Recolhemos os valores do formulário
nome=Request.Form("nome")
telefone= Request.Form("telefone")

'Instanciamos e abrimos nosso objeto conexao
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Minhabase"

'Agora criamos a sentença SQL
sSQL="Update Clientes Set telefone='" & telefone & "' Where nome='" & nome & "'"

'Executamos a ordem
set RS = Conn.Execute(sSQL)
%>

<h1><div align="center">Registro Atualizado</div></h1>
<div align="center"><a href="lectura.asp">Visualizar o conteudo da base</a></div>

<%
'Fechamos o sistema de conexao
Conn.Close
%>

</BODY>
</HTML>

Nada a comentar a respeito, salvo a estrutura da sentença SQL que neste caso realiza um Update no lugar de um Insert. Aconselhamos, como para o caso precedente imprimir o valor de sSQL de forma a ver como fica a sentença uma vez construída.






 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Excluir um registro




Como apagar um registro. Scripts de exemplo.

Por Rubén Alvarez




Outra das operações fundamentais que podem ser realizadas sobre uma base de dados é o apagar um registro. Para fazê-lo, SQL nos propõe sentenças do tipo Delete. Vejamos com um exemplo, aplicado a nossa agenda. Primeiro, criaremos um menu desdobrável dinâmico como para o caso das atualizações:


<HTML>
<HEAD>
<TITLE>Apagar1.asp</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Apagar um registro</h1>
<br>
<%
'Instanciamos e abrimos nosso objeto conexao
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Minhabase"
%>

<FORM METHOD="POST" ACTION="apagar2.asp">
Nome<br>
<%
'Criamos a sentença SQL e a executamos
sSQL="Select nome From clientes Order By nome"
set RS = conn.execute(sSQL)
%>
<select name="nome">
<%
'Geramos o menu desdobravel
Do While not RS.eof%>
<option><%=RS("nome")%>
<%RS.movenext
Loop
%>
</select>
<br>
<INPUT TYPE="SUBMIT" value="Apagar">
</FORM>
</div>

</BODY>
</HTML>

O seguinte passo é fazer efetiva a operação a partir da execução da sentença SQL que construímos a partir dos dados do formulário:

<HTML>
<HEAD>
<TITLE>Apagar2.asp</TITLE>
</HEAD>
<BODY>
<%
'Recolhemos os valores do formulario
nome=Request.Form("nome")

'Instanciamos e abrimos nosso objeto conexao
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Minhabase"

'Agora criamos a sentença SQL
sSQL="Delete From Clientes Where nome='" & nome & "'"

'Executamos a ordem
set RS = Conn.Execute(sSQL)
%>

<h1><div align="center">Registro Apagado</div></h1>
<div align="center"><a href="leitura.asp">Visualizar o conteudo da base</a></div>

<%
'Fechamos o sistema de conexao
Conn.Close
%>

</BODY>
</HTML>



 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
ActiveX Data Object





Explicamos as características principais de ADO. Uma das formas mais rápidas e fáceis de manejar bancos de dados que residem no servidor.

Por Pedro Rufo Martin





Uma das características mais interessantes de ASP é sua facilidade para o manejo de banco de Dados que residem no servidor. Isto o conseguimos mediante o uso de ADO (ActiveX Data Object) de uma forma fácil, rápida e com um mínimo consumo de recursos do sistema.

ADO usa ODBC para o acesso ao banco de dados, o que nos torna independente da tecnologia das mesmas; isto implica que podemos mudar a tecnologia do banco de dados e se mantemos a mesma estrutura de dados, nossas aplicações desenvolvidas com ADO podem continuar funcionando sem mudar nenhuma linha de código.

Para o desenvolvimento podemos criar nossas fontes de dados em Microsoft Access, porém em ambientes de produção com grande afluência de clientes deveremos de usar gerenciadores de bancos de dados mais potentes, como Oracle, Microsoft Sql Server, etc.

ADO está formado por vários objetos organizados de forma hierárquica (cada um deles com seus métodos e propriedades específicos) dos quais vamos estudar os que considero mais interessantes.

esquema.jpg



Objetos

Connection

Proporciona uma conexão a um banco de dados ODBC desde uma página ASP. Esta conexão nos permitirá efetuar as operações que desejarmos sobre o banco de dados.

É o objeto primário de ADO, nenhum dos outros objetos pode existir se este não for declarado de forma explícita ou implícita (em alguns dos exemplos veremos que não existe uma declaração do objeto Connection, porém devemos ter em conta que sempre existe, se for necessário ADO o declarará por si mesmo).

A conexão terminará quando nós a fechemos explicitamente com o método close ou então quando termine a execução da página ASP.

Error

É uma coleção na que se armazenam os possíveis erros do objeto Connection.

Command

Representa um comando SQL que se executa contra o banco de dados declarado no objeto Connection.

Se o resultado desse comando for um conjunto de dados, estes se armazenarão em um objeto de tipo Recordset.

Recordset

Representa uma tabela ou o resultado de uma consulta executada contra o banco de dados. Será nossa interface natural contra o banco de dados.

Como em todo modelo relacional, os dados se são apresentados em filas e colunas.

Field

O objeto Field representa a informação relativa a um campo de um Recordset.

Contem a coleção Fields que representa todos os campos da tabela, cada membro dessa coleção é um objeto de tipo Field.



 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Objeto Connection (propriedades e métodos)



Mostramos sua utilização, assim como suas propriedades e métodos.

Por Pedro Rufo Martin





Já comentamos que o objeto Connection nos proporciona uma conexão a um banco de dados desde uma página ASP; agora veremos como se usa , assim como suas propriedades e métodos.

Para estabelecer a conexão o primeiro que fazemos é criar o Objeto Connetion por meio da propriedade CreateObject de objeto Server:

<% Set conexion=Server.CreateObject("ADODB.Connection")%>

Uma vez estabelecida a instância do objeto passamos a configurá-lo mediante suas distintas propriedades e métodos.

Propriedades:

ConnectionString

Especifica a referência ao banco de dados com o qual queremos conectar, contendo em uma cadeia de texto a informação necessária para efetuar essa conexão mediante duplas de valores separadas por ";".

Os valores que podemos atribuir são:
Data Source: DSN=Nome ODBC do Banco de Dados
Usuario: UID=Nome de Usuario
Password: PWD=Password do usuário para o banco de dados


Exemplo:

<% conexion.ConnectionString="DSN=MIOdbc;UID=pepe;PWD=1234" %>

Mode

Especifica as permissões da conexão.

Alguns dos valores mais habituais que podemos atribuir são:

1 Estabelece permissão só de Leitura
2 Estabelece permissão só de Escritura
3 Estabelece permissão de Leitura/Escritura

Exemplo:

<% conexion.Mode=3 %>

Métodos:

BeginTrans

Abre uma transação; todas as operações que realizarmos a partir desse momento não serão efetivas até que não fechemos a transação.

Exemplo:

<% conexion.BeginTrans %>

Close

Fecha o objeto

Exemplo:

<% conexao.close %>

CommitTrans

Fecha uma transação tornando efetivas as mudanças efetuadas dentro dela.;

Exemplo:

<% conexion.CommitTrans %>

Execute

Executa uma instrução SQL contra o banco de dados.

Exemplo:

<% Set resultado=conexao.execute (Select * from amigos) %>

Open

Abre a conexão com os parâmetros especificados nas propriedades.

Exemplo:

<% conexao.open %>

RollBackTrans

Desfaz todas as mudanças efetuadas no banco de dados desde o início da transação.

Exemplo:

<% conexao.RollBackTrans %>
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Objeto Command de ASP (Propriedades e métodos)





O objeto Command nos permite executar um comando SQL contra um banco de dados e armazenar seu resultado ( se o comando o produz, claro ) em um recordset.

Por Pedro Rufo Martin






Propriedades:
ActiveConnection

Especifica o objeto connection ao que se refere este objeto Command.

Sintaxe

objcommand.activeconnection=Nome da conexão

Exemplo:

<%Set conexao=Server.CreateObject("ADODB.Connection")
conexao.ConnectionString="DSN=MIOdbc;User=pepe;Password=1234"
conexao.open
objcommand.activeconnection=Conexao %>

CommandText

É uma cadeia de texto com o comando a executar.

Sintaxe

objcommand.Commandtext=comando sql a executar

Exemplo:

<%Set conexao=Server.CreateObject("ADODB.Connection")
conexao.ConnectionString="DSN=MIOdbc;User=pepe;Password=1234"
conexao.open

Set objcommand=Server.CreateObject("ADODB.Command")
objcommand.activeconnection=Conexao

objcommand.commandtext="delete * from socios where pago=0"

%>

Métodos:

Execute

Executa o comando armazenado na propriedade CommandText..

Sintaxe

objcommand.execute

Exemplo:

<%Set conexao=Server.CreateObject("ADODB.Connection")
Co0nexao.ConnectionString="DSN=MIOdbc;User=pepe;Password=1234"
conexao.open

Set objcommand=Server.CreateObject("ADODB.Command")
objcommand.activeconnection=Conexao objcommand.commandtext="delete * from socios where pago=0"
objcommand.execute%>

Outro Exemplo armazenado em um recordset:

<%Set conexao=Server.CreateObject("ADODB.Connection")
conexao.ConnectionString="DSN=MIOdbc;User=pepe;Password=1234"
conexao.open

Set objcommand=Server.CreateObject("ADODB.Command")
objcommand.activeconnection=Conexao objcommand.commandtext="select * from socios where codigo > 100"

Set resultado=Server.CreateObject("ADODB.recordset")
set resultado=objcommand.execute() %>
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Objeto Application




Tudo o que necessitamos saber do objeto application. Como se utiliza e qual é a sua sintaxe.

Por Pedro Rufo Martin





O objeto Application se utiliza para compartilhar informação entre todos os usuários de uma aplicação (entendemos por uma aplicação ASP todos os arquivos .asp de um diretório virtual e seus subdiretórios. Como vários usuários podem compartilhar um objeto Application, existem os métodos Lock e Unlock para assegurar a integridade do mesmo (vários usuários não podem modificar uma mesma propriedade ao mesmo tempo).

Lock

O método Lock assegura que só um cliente pode modificar ou ter acesso às variáveis de Application ao mesmo tempo.

Sintaxe:
ApplicationLock

Unlock

O método Unlock desbloqueia o objeto Application para que possa ser modificado por outro cliente depois de ter se bloqueado mediante o método Lock. Se não se chama a este método de forma explícita, o servidor Web desbloqueia o objeto Application quando o arquivo .asp termina ou transcorre seu tempo de espera.

Sintaxe:
Application.Unlock

Exemplo:

<% Application.Lock
Application("visitas") = Application("visitas")+1
Application.Unlock %>
Você é o visitante número <%= Application("visitas") %>



No exemplo anterior o método Lock impede que mais de um cliente tenha acesso à variável Visitas ao mesmo tempo. Se a aplicação não tivesse se bloqueado, dois clientes poderiam tentar incrementar simultaneamente o valor da variável Visitas. O método Unlock libera o objeto bloqueado de forma que o próximo cliente pode incrementar a variável.

Nota Importante:

No objeto Application podem se armazenar matrizes, porém estas são armazenadas como um objeto, ou seja, não podemos armazenar ou recuperar um só elemento da matriz, se não que carregaremos ou recuperaremos a variável com a matriz completa

Exemplo:

<%Dim parametros(2)
parametros(0) = "verde"
parametros(1) = 640
parametros(2) = 480
Application.Lock
Application("Param") =parametros%>
Application.UnLock

com estas instruções armazenaríamos TODA a matriz na variável de aplicação "Param"

Para recuperar os valores da matriz primeiro recuperamos esta em uma variável normal

<%Apliparam=Application("Param")%>

Agora poderemos operar com os valores da tabela nas variáveis Apliparam(0), Apliparam(1) e Apliparam(2)
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Objeto TextStream





Explicamos para que se utiliza e os 9 métodos com os quais se pode trabalhar.

Por Pedro Rufo Martin




O objeto TextStream nos serve para manejar arquivos de texto no servidor. A criação deste objeto se realiza a partir de um objeto FileSystemObject e graças a algum de seus métodos.

Uma vez criado, dispomos de um objeto TextStream que representa um arquivo físico aberto, já seja para leitura ou escritura.

Este objeto dispõe de 9 métodos:

Métodos:

Close

Fecha o arquivo.
Sintaxe
<% MeuArquivo.close%>

Read

Lê e devolve um número especifico de caracteres.
Sintaxe
<% MeuArquivo.read(número de caracteres) %>

ReadAll

Lê e devolve um arquivo completo.
Sintaxe
<% MeuArquivo.ReadAll %>

ReadLine

Lê e devolve uma linha completa de um arquivo de texto.
Sintaxe
<% MeuArquivo.ReadLine%>

Skip

Salta um número determinado de caracteres ao ler um arquivo.
Sintaxe
<% MeuArquivo.Skip(número de caracteres) %>

SkipLine

Salta uma linha ao ler um arquivo.
Sintaxe
<% MeuArquivo.SkipLine %>

Write

Escreve uma cadeia de caracteres e um arquivo.
Sintaxe
<% MeuArquivo.Write("texto_entre_aspas") %>

WriteLine

Escreve uma cadeia de caracteres em um arquivo adicionando ao final um caractere de fim de linha.
Sintaxe
<% MeuArquivo.WriteLine("texto_entre_aspas") %>

WriteBlankLines

Escreve um número especifico de caracteres de nova linha.
Sintaxe
<% MeuArquivo.WriteBlankLines(numero_de_linhas) %>

Exemplo de escritura em um arquivo

<HTML>
<HEAD><TITLE>Exemplo de FSO e TextStream</TITLE></HEAD>
<BODY>
<%
Set Mfso=Server.CreateObject("Scripting.FileSystemObject")
Set MArquivo=Mfso_OpenTextFile("c:\data.txt",2,true)
MArquivo.writeline "Olá Mundo, hoje é:"
MArquivo.write date()
MArquivo.close
%>
Criado arquivo em C:\data.txt com a data de hoje
</BODY>
</HTML>
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Dando formato aos números (Função FormatDateTime)




Neste artigo utilizaremos a função FormatDateTime para dar formato aos números em ASP.

Por Pedro Rufo Martin






Descrição

Devolve uma expressão com formato de número.

Sintaxe

FormatNumber(Expressão [,NúmDígitosDepoisDeDecimal [,IncluirDígitoInicio [,UsarParêntesesParaNúmerosNegativos [,GrupoDígitos]]]])

A sintaxe da função FormatNumber tem as seguintes partes:
Parte Descrição
Expressão Requerido. Expressão a qual se vai aplicar formato.
NúmDígitosDepoisDeDecimal Opcional. Valor numérico que indica quantos lugares se mostram a direita do decimal. O valor predeterminado é -1, que indica que se usa a configuração regional do computador.
IncluirDígitoInicio Opcional. Constante de três estados que indica se se deve mostrar ou não um zero inicial para valores fracionários. Consulte a seção Valores para saber quais são os valores permitidos.
UsarParêntesesParaNúmerosNegativos Opcional. Constante de três estados que indica se se devem fechar ou não os valores negativos entre parênteses. Consulte a seção Valores para saber quais são os valores permitidos.
GrupoDígitos Opcional. Constante de três estados que indica se se devem agrupar ou não os números com o delimitador de grupos especificado no Painel de controle. Consulte a seção Valores para saber quais São os valores permitidos.


Valores

Os argumentos IncluirDígitoInicio, UsarParêntesesParaNúmerosNegativos e GrupoDígitos têm os seguintes valores:
Constante Valor Descrição
TristateTrue -1 True
TristateFalse 0 False
TristateUseDefault -2 Usa a configuração regional do computador.


Comentários

Quando se omitem um ou mais dos argumentos opcionais, a configuração regional do computador proporciona os valores dos argumentos omitidos.
Nota: Toda a informação de configuração e valores se obtém da ficha Número de Configuração regional.


O seguinte exemplo usa a função FormatNumber para dar formato a um número para que tenha quatro lugares decimais:

Function ExemploDeFormatNumber
Dim MeuAngulo, MinhaSecante, MeuNumero
MeuAngulo = 1.3 ' Define um ângulo em radianos.
MinhaSecante = 1 / Cos(MeuAngulo) ' Calcula a secante.
ExemploDeFormatNumber = FormatNumber(MinhaSecante,4)

' Dá formato a MinhaSecante para que tenha quatro lugares decimais.
End Function
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Uso das Cookies



As cookies são o mecanismo que nos permite salvar informação relativa a um usuário ao longo de seus distintos acessos a nossas páginas.

Por Pedro Rufo Martin




Permite-nos integrar funcionalidades como:
Personalização de opções de cliente
Personalização em função das características do cliente
Cestas de compra
Etc.
As cookies se armazenam nas máquinas dos clientes, isto há que ter em conta pelas possíveis faltas de integridade de dados que puderam ocorrer.

ASP implementa a possibilidade de usar cookies para criar ou destruir informação que se armazena nas máquinas dos clientes.

As cookies se transmitem nos cabeçalhos quando se realiza a comunicação http e é o navegador o encarregado de armazená-las.

As cookies se implementam como uma coleção e se usam mediante os objetos integrados Request e Response.

Tempo de vida de uma cookie

Por padrão, uma cookie tem um âmbito de sessão, ou seja, tem o tempo de vida o qual está ativo o navegador.

Podemos variar o tempo de vida de uma cookie mediante o atributo expires

Sintaxe:

Response.Cookies(cookie)[(chave)|.atributo] = valor

Request.Cookies(cookie)(chave)

Exemplos:

Enviar uma cookie simples

<% Response.cookies("cor")="roxo" %>

Recuperar o valor dessa cookie

<% CorFavorita=Request.cookies("cor")%>

Enviar uma cookie com chaves

<% Response.cookies("cor")("fundo")="roxo"%>

<% Response.cookies("cor")("texto")="branco"%>

Recuperar uma cookie com chaves

<% Request.cookies("cor")("fundo")%>

Recuperaria o valor roxo

<% Request.cookies("cor")("texto") %>

Recuperaria o valor branco
Nota: Quando usamos Response para escrever uma cookie, se esta já existia se substitui.


Atributos:

Expires

Estabelece o dia de vencimento de uma cookie

Exemplos:

Fazer com que uma cookie expire imediatamente

<% Response.cookies(cookie).expires="1/1/1990"%>

Fazer com que uma cookie expire certo dia

<% Response.cookies(cookie).expires="12/12/2008"%>
 
Topo