014_Curso-de-Active-Server-Pages-da-UFPI
43 pág.

014_Curso-de-Active-Server-Pages-da-UFPI

Disciplina:ALGORITMOS6.526 materiais91.227 seguidores
Pré-visualização9 páginas
de Arquivodo servidor Web.
Devemos agora criar outro objeto(TextStream), a partir desse, para representar um
determinadoarquivo.Fazemosisso,utilizandoométodoOpenTextFiledoFileSystemObject:

SetArquivo=Objeto.OpenTextFile(Nome,modo,cria,formato)

Onde:
Nome Nomedoarquivoaserutilizadopeloscript

Modo
Modo de Abertura do arquivo. 1 para
leitura, 2 para gravação por cima, 3 para
gravaçãoadicional.

Cria
Valor Booleano que indica se o arquivo
devesercriado(true)ounão(false)casonão
exista.

Formato Indicaoformatodegravaçãodoarquivoa
serutilizado.–1Unicode,0Ascii

Paralermosoconteúdodeumar[quivo,podemosutilizarosseguintesmétodosdo
objetoTextStream:
Read(quantidade) Lê um determinado número de caracteresdoarquivo
ReadLine Lêumalinhainteiradoarquivo
ReadAll Lêoarquivointeirodeumasóvez

Massenosinteressargravarinformaçõesnoarquivo,osmétodosdisponíveissão:
Write Gravaumastringnoarquivo

WriteLine Grava um string no arquivo, incluindo aquebradelinha

WriteBlankLines Grava um determinado número de linhas
embranconumarquivo

EssecomponenteActiveXaindapossuiasseguintespropriedades:

AtEnOfLine Indicao fimdeumadeterminada linhado
arquivo

AtEnOfStream IndicaoFinaldoArquivo
Column Indicaemquecolunadoarquivoestamos
Line Indicaonúmerodalinhaatualdoarquivo

OcódigoaseguirmostracomoabrimosumarquivolocalizadonoservidorWEBe
exibimosseuconteúdo:

Exemplo23.1:Arquivo1.asp

<%@Language=vbScript%>
<HTML><HEAD><TITLE>CursoASP</TITLE></HEAD>
<BODY><CENTER>
<%dimfinal

http://Apostilas.Fok.com.br–SeusitedeApostilasetutoriais 37de43

final="</CENTER></BODY></HTML>"
OnErrorResumeNext
SetObj=Server.CreateObject("Scripting.FileSystemObject")
Setarquivo=Obj.OpenTextFile("D:\pessoas.txt",1)
ifErrthen
Response.write"Ocorreuumerrotentandoabriroarquivo!"
Response.writefinal
Response.End
endif
Response.Write"ListadeE-mails<BR>"
Response.write"<HR>"
dowhilearquivo.AtEndOfStream=false
a=arquivo.Readline
response.writea&"<BR>"
a=arquivo.Readline
response.writea&"<HR>"
loop
Response.Write"NovaEntrada"
Response.Write"<FORMACTION=Arquivo2.asp>"
Response.Write"NOME:<INPUTTYPE=TEXTNAME=NOME><BR>"
Response.Write"EMAIL:<INPUTTYPE=TEXTNAME=EMAIL><BR>"
Response.Write"<INPUTTYPE=SUBMITVALUE=ENVIAR></FORM>"
REsponse.Writefinal
arquivo.close
%>

ApróximapáginaASPmostracomoescrevernumarquivolocalizadonoservidor
WEB.LembrandoqueessapáginadeveseracessadaporumformulárioWEBcomumobjeto
deNAME=NomeeoutroNAME=Email:

Exemplo23.2Arquivo2.asp
<%@Language=vbScript%>
<HTML><HEAD><TITLE>CursoASP</TITLE></HEAD>
<BODY><CENTER>
<%dimfinal
final="</CENTER></BODY></HTML>"
OnErrorResumeNext
SetObj=Server.CreateObject("Scripting.FileSystemObject")
Application.Lock
Setarquivo=Obj.OpenTextFile("D:\pessoas.txt",8)
ifErrthen
Response.write"Ocorreuumerrotentandoabrirarquivo!"
Response.writefinal
Response.End
endif
Arquivo.WriteLine(Request("Nome"))
Arquivo.WriteLine(Request("Email"))
arquivo.close
ifErrthen
Response.write"Ocorreuumerrotentandogravarnoarquivo!"
Response.writefinal

http://Apostilas.Fok.com.br–SeusitedeApostilasetutoriais 38de43

Response.End
else
Response.Write"Dadosinseridoscomsucesso!"&"<BR>"
Response.Write"Nome:"&Request("Nome")&"<BR>"
Response.Write"Email:"&Request("Email")
endif
Response.Writefinal
%>

7.7ACESSANDOBANCODEDADOS

É possível criar páginas ASP que tenham a habilidade de recuperar ou alterar
informaçõesemumbancodedados.Paratal,devemosutilizarocomponenteMicrosoftData
AccessquejáveminstaladocomoIIS.

ParaimplementaresseacessoaumbancodedadosrelacionaloDataAccessutiliza
componentes inseridos no pacote ADO(Activex Data Object), uma tecnologia baseada no
ODBC(OpenDataBaseConnectivity).

7.7.1ODBC

OODBCéomeiomaisconhecidoparaacessarumbancodedadosemambiente
Windows. Ele facilita a vida do desenvolvedor mascarando as particularidades de
implementaçãodosBancodeDadoscomqueosmesmosirãotrabalhar.

AidéiaéquecadafabricantedebancodedadoscrieumdriveODBC.Sendoassim,
quandoumprogramatentaacessardeterminadobancodedadosviaODBCowindowsprocura
um drive apropriado para este, verifica como deve proceder e então efetua as operações
requisitadas.

AntesdecolocaramãonamassaedesenvolverpáginasASPcomacessoabancode
dadosdevemos:

�CriarumBancocompatívelcomODBC
�RegistraroBancocomoumaorigemdedadosODBC

EsseúltimopassopermitequeaplicaçõesqueacessemBancodeDadosviaODBC
precisemapenassaberonomedessaorigemdedados,dispensando-seaspreocupaçõescoma
localizaçãoexataeotipodebancodedadosacessado.

ParacriarumaorigemdedadosdevemosexecutaroprogramaODBCdoPainelde

http://Apostilas.Fok.com.br–SeusitedeApostilasetutoriais 39de43

ControledoWindows.

Geralmente para uma aplicação Web é criada uma Origem de dados na opção
SystemDSN.Clicandonobotãoadicionartemos:

Aqui devemos escolher o driver ODBC a ser utilizado para acessar o Banco de
Dados. Para o nosso exemplo usaremos o Microsoft Access. O nome do nosso Banco será
Curso.mdbeteráumatabelachamadaPessoalcomoscampos:

Codigo AutoIncremental(ChavePrimária)
Nome Texto(50)(NãoNulo)
Email Texto(50)
DataN Data/Hora

OnomedanossaFontedeDadosseráCursoAsp.

NessajanelaespecificaremosonomedanossafonteeoseuPATH(Select).
Feitoisso,nossafontededadosfoicriada.Quandonossasaplicaçõesnecessitarem

abrirtalbancodedados,bastainformaragoraonomedessafonte(CursoASP).

7.7.2ADO

http://Apostilas.Fok.com.br–SeusitedeApostilasetutoriais 40de43

ParautilizarbancodedadosemnossaspáginasASPdevemosinstanciarosobjetos
doADO:

�Connection:representaumaconexãoativacomumbancodedadosODBC.Esse
éocomponentemaisimportantedoADO,sendoqueosdemaissópoderãoser
criadosapartirdele.

�Command:representaumcomandoaserexecutadopelafontededadosODBC.
ComelepodemoscriarcomandosSQLcompiladosnoservidor(preparados).

�Recordset:representaumconjuntoderegistrosresultantesdoprocessamentode
um comando SQL em um objeto Connection. É esse objeto que permite a
navegaçãonumatabelaouconsultadobancodedados.

�Fileds:RepresentaoscamposdeumRecordSet.

OprimeiroobjetoquedeveserinstanciadoéoConnection:

SetConexao=Server.CreateObject(“ADODB.Connection”)

Apóssuadefinição,precisamosativaraconexãocomafontededadosODBC.Para
isso,usamosométodoOpendoConnection.Sintaxe:

ObjConexao.OpenFonteODBC,Usuário,senha

Onde:
FonteODBC:éonomedafonteOBDCouumastringdeconexãocomoBanco
Usuário:éonomedousuáriodaBancodeDados(opcional)
Senha:éasenhadesseusuário(opcional)

Exemplo:

Conexao.Open“CursoASP”

OobjetoConnectionpossuiváriosoutrosmétodos,sendoqueosprincipaissão:
Close FechaaconexãoeliberarecursosnoServidordeBancodeDados.

Execute(ComandoSQL)

Executa um comando SQL na Conexão aberta. Quando o
comandoSQL forde seleção,ométodo retornaumobjeto
do tipo RecordSet com o resultado da consulta. Quando o
comando SQL for de execução esse método não retorna
nada.

BeginTrans IniciaumatransaçãonoBancodeDados
CommitTrans Finalizacomsucessoumatransaçãoiniciada
RollBackTrans Desfaztodososcomandosdeumatransaçãoaberta.

ParainstanciarmosumRecordSetprocedemosdaseguinteforma:

SetTabela=Server.CreateObject(“ADODB.RecordSet”)

EmseguidadevemosindicaraFontedeDadosODBCparaoRecordset:

Tabela.ActiveConnection=“CursoASP”

http://Apostilas.Fok.com.br–SeusitedeApostilasetutoriais 41de43

Por fim, abrimos o recordsetutilizandoo método Open e informando o comando
SQL:

Tabela.Open“Select*FromPessoa”

Mas a forma mais fácil de se instanciarum Recorset é pelautilizaçãodo método
ExecutedoConnection:

SetTabela=Conexao.Execute(“Select*frompessoa”)

OsprincipaismétodosepropriedadesdoobjetoRecordSetsão:

BOF TrueindicainíciodoRecordSet
EOF TrueindicaofinaldoRecordSet
Close Fechaorecordsetaberto
MoveFirst MoveocursorparaoprimeiroregistrodeumRecordSet
MoveLast MoveocursorparaoúltimoregistrodeumRecordSet
MoveNext MoveocursorparaopróximoregistrodeumRecordSet
MovePrevious MoveocursorpararegistroanteriordeumRecordSet
Update SalvaasalteraçõesfeitasnoRecordSetnoBancodeDados.Também

serveparaalteraroregistrocorrentedoRecordSet
Exemplo:
Tabela.Update“email”,”lsantos@ufpi.br”

AddNew AdicionaumregistroaoRecordSet
Ex:
Tabela.AddNew
Tabela(“Nome”)=”Kelly”
Tabela(“DataN”)=#26/05/1980#
Tabela.Update