52

Database Enviroment

Embed Size (px)

Citation preview

Page 1: Database Enviroment
Page 2: Database Enviroment
Page 3: Database Enviroment

Visão Geral....................................................................................................................................................... 2

Bancos de Dados............................................................................................................................................. 3

Utilizando DNS de Sistema.............................................................................................................................. 3

Componentes ODBC32Bits.............................................................................................................................. 4

Como instalar um componente ODBC..........................................................................................................4

Quais os componentes de um sistema de banco de dados.............................................................................6

A SQL(Structured Query Language).................................................................................................................6

Operadores de Comparação......................................................................................................................... 7

Operadores Lógicos...................................................................................................................................... 7

Exemplos de instruções SQL........................................................................................................................ 8

Utilizando o Microsoft Access 8.0/97..............................................................................................................10

Criando um banco de dados no Microsoft Access......................................................................................10

Utilizando o My-Sql 3.2.3................................................................................................................................ 12

Conectando/Desconectando o MySql.........................................................................................................12

Criando e abrindo um banco de dados.......................................................................................................12

Criando tabelas e campos.......................................................................................................................... 13

Para criar uma tabela dentro do banco de dados você deve:.....................................................................13

Para exibir a estrutura da tabela................................................................................................................. 14

PHP................................................................................................................................................................ 15

Criando e executando um arquivo em PHP................................................................................................15

Enviando informações do cliente para o servidor(Navegador)....................................................................15

Enviando informações do servidor para o cliente(Servidor Web)...............................................................15

Integração do Formulário HTML e PHP......................................................................................................15

Tornando a informação persistente na aplicação........................................................................................16

Passando informações através de variáveis dinâmicas..............................................................................17

Enviando informações para o usuário.........................................................................................................18

Gerenciando um banco de dados MySql....................................................................................................19

Estabelecendo a comunicação com o banco de dados..............................................................................19

Utilizando rotinas atuárias........................................................................................................................... 19

Gravando Informações no Banco de dados MySQL...............................................................................19

Atualizando Informações no Banco de dados MySQL............................................................................20

Excluindo Informações no Banco de dados MySQL................................................................................20

Consultando Informações no Banco de dados MySQL...........................................................................20

ASP................................................................................................................................................................ 22

A Estrutura da Active Server Pages............................................................................................................22

Criando e executando um arquivo em ASP................................................................................................23

Informação persistente na aplicação...........................................................................................................23

Passando informações específicas para um usuário..............................................................................23

Integração do formulário HTML com ASP...................................................................................................24

Enviando informações para o usuário.........................................................................................................24

Page 4: Database Enviroment

Gerenciando um banco de dados...................................................................................................................25

Utilizando ADO com Active Server Pages..................................................................................................25

Objeto Connection................................................................................................................................... 25

O objeto recordset (registros)..................................................................................................................26

Gerenciando componentes C.O.M com ASP..............................................................................................30

Utilizando o objeto aspmail......................................................................................................................... 30

Registrando componentes ActiveX no Servidor.............................................................................................32

XML................................................................................................................................................................ 33

XML Vs. HTML............................................................................................................................................ 33

Criando Documento XML............................................................................................................................ 33

Estrutura de um documento XML................................................................................................................34

Prolog...................................................................................................................................................... 34

Comnetários............................................................................................................................................ 35

Elementos ROOT.................................................................................................................................... 35

Elementos CHILD.................................................................................................................................... 35

Elementos Vazios.................................................................................................................................... 36

Criando Data Island com XML e HTML..........................................................................................................36

Utilizando Validação com Schemas................................................................................................................36

Melhorando a aparência com XSLT...............................................................................................................36

Mecanismos do XSLT................................................................................................................................. 36

Criando Um arquivo XSLT.......................................................................................................................... 36

UTILIZANDO ACTIVE SERVER PAGES E MSXML3.0.................................................................................36

Page 5: Database Enviroment

Visão Geral

“... Neste módulo você vai aprender como as tecnologias ASP, PHP, ADO, SQL, XML, ACTIVEX, COM, Dlls

são utilizadas para tornar sua aplicação dinâmica e altamente produtiva. Para compreender os conceitos e

lições bem como os códigos mostrados e demonstrados neste material você tem que racionar como um

servidor Web”.

Saber analisar e responder aos pedidos do cliente através dos protocolos web (http, FTP) e principalmente

entender que o termo servidor é muito mais que um computador principal, é a maneira como os serviços de

uma aplicação se relacionam...”“.

Marcelo Costa

1

Page 6: Database Enviroment

Bancos de Dados

Sistemas de bancos de dados são utilizados para armazenar grandes quantidades de informações sobre

um determinado assunto. Exemplo: informações sobre o estoque da sua empresa. Estas informações

podem estar relacionadas com outras informações no mesmo sistema de banco de dados ou de outros

bancos de dados em outras plataformas operacionais em um ambiente de rede como intranet e/ou internet.

Exemplo: as informações sobre os produtos que a empresa vende pode estar vinculado as informações

sobre os fornecedores.

Neste módulo você vai estudar sobre as ferramentas e recursos utilizados na criação e gerenciamento de

sistemas de bancos de dados através do Microsoft Access e do MySql. As aplicações servidor(ASP, PHP)

que utilizam estes bancos de dados trabalham com ODBC(open database conectivity) para efetuar a

comunicação com estes programas. A seção posterior mostra como criar uma comunicação utilizando

ODBC através do applet Fontes de dados ODBC contido no painel de controle.

Utilizando DNS de Sistema

Você pode utilizar o DNS(Data Source Name) ou NFD(Nome da Fonte de dados) para prover comunicação

com o banco de dados que contém informações a serem coletas pela sua aplicações Web. Para criar uma

comunicação você deve:

1. No Painel de Controle, clique 2x no ícone Fonte de dados ODBC 32 bits e,

em seguida, clique na guia DNS de sistema ou NFD de sistema.

2. Para criar uma instancia de conexão, clique em Adicionar. Para alterar os

parâmetros de uma conexão existente clique em Configurar. Para apagar uma conexão clique em

Remover.

2

Page 7: Database Enviroment

3. Neste exemplo você deve clicar em Adicionar e, em seguida, clique no

nome do Driver de banco de dados desejado. Por fim clique em Concluir.

Componentes ODBC32Bits

Fornecer acesso aos dados de diversos aplicativos de bancos de dados pode ser uma operação muito

complexa. Os aplicativos que usam padrão ODBC, como o Microsoft Access e MYSql, aliviam essa carga

usando meios de fornecedor neutro para trabalhar com SGBDs(Sistemas de Gerenciamento de Bancos de

Dados). A tabela abaixo mostra as camadas do ODBC

Aplicativo – A.D.O.

Gerenciador de Driver (ODBC32.DLL)

Driver SGBD (DLL)

Software de Rede

Fonte de dados SGBD)

O aplicativo chama as funções ODBC para conectar-se a uma fonte de dados;

O gerenciador de driver fornece uma lista de fontes de dados disponíveis, carrega os drives

dinamicamente à medida que eles forem necessários.

O Driver SGBD, desenvolvido separadamente do aplicativo, processa as chamadas de função ODBC e

pode converter a sintaxe SQL padrão da fonte de dados de destino em SQL nativa.

Como instalar um componente ODBC

Nesta seção você vai aprender como instalar o componente ODBC para o banco de dados MySql atrvés do

arquivo MyODBC-3.51.01.exe

2. procure a pasta no servidor contendo o arquivo MyODBC-3.51.01.exe

3

Page 8: Database Enviroment

3. Na tela de apresentação clique sobre o botão next. Será apresentada a tela de contrato.

4. Clique novamento sobre o botão next. Agora o sistema indica que você está pronto para instalar os

componentes do driver odbc para o MySql

5. Para iniciar a copia dos arquivos clique em next

4

Page 9: Database Enviroment

6. Depois de terminada a instalação dos arquivos clique em Finish

Importante: Você pode utilizar o Driver instalado, a partir do applet Fonte de dados ODBC 32 bits contido

no painel de controle. Para obter maiores informações sobre a utilização do applet Fonte de dados ODBC

32 bitx consulte a seção

Quais os componentes de um sistema de banco de dados

Um sistema de banco de dados é constituído de um arquivo principal. Dentro deste arquivo principal existem

as tabelas. As tabelas são utilizadas para armazenar informações sobre um determinado assunto. Exemplo:

Uma tabela de produtos contém informações sobre os produtos que a empresa vende (nome, quantidade

etc..). A tabela é composta de campos. Os campos são utilizados para separar e organizar as informações

de um assunto em grupos. Exemplo: O campo Descrição pode conter o nome dos produtos da tabela de

produtos.

Para criar estes componentes bem como pesquisar as informações gravadas dentro dos campos de uma ou

mais tabelas você pode utilizar a aplicativos como Microsoft Access, Microsoft SQL Server, Mysql, entre

outros. A linguagem de programação SQL associada a estes aplicativos também permite a criação de

bancos de dados e seus componentes.

A SQL(Structured Query Language)

A linguagem SQL é utilizada para oferecer uma comunicação programável com as fontes de dados padrão

ODBC e OLEDB. Esta seção mostra exemplos sobre a utilização de alguns comandos SQL. Estes

Banco de

Dados

Tabela de Clientes Tabela de Produtos Tabela de Fornecedores

Nome

Endereço

Código

Descrição

Nome

CGC

5

Page 10: Database Enviroment

comandos podem ser atribuídos a variáveis e utilizados em conjunto com os objetos do componente

ADO(ActiveX Data Object).

A tabela abaixo mostra uma descrição de algumas instruções em SQL organizadas por cláusulas e

comandos. Para maiores informações consulte Exemplos de instruções SQL posteriormente.

INSTRUÇÃO TIPO DESCRIÇÃO

SET cláusula Especifica a coluna(campo) e os valores que serão mudados na tabela do

banco de dados

ORDER BY cláusula Classifica uma ou mais colunas(campos0 em ordem crescente(ASC) ou

decrescente(DESC)

WHERE cláusula Determina(m) qual(is) linha(s), isto é, registro(s) que será(ão) atualizado(s) no

banco de dados. A cláusula where pode utilizar operadores de comparação,

Intervalos, Listas e Lógicos. Estes operadores podem ser utilizados de forma

isolada ou em conjunto.

UPDATE comando Muda uma única linha ou um grupo de registros em uma tabela

SELECT comando Especificar quais colunas(campos) do banco de dados você deseja utilizar

FROM Especificar as tabelas onde as colunas(campos) estão armazenados

INSERT comando Inserir linhas de informação, isto é, registros no banco de dados com a

palavra chave VALUES. A palavra-chave INTO possibilita especificar quais

colunas serão utilizadas

LIKE cláusula Seleciona registros que atendam uma parte do valor específicado na srting.

Exemplo: para selecionar todos os produtos que comecem pela letra A você

pode utilizar LIKE 'A%'

DELETE Comando Deletar

Operadores de Comparação

Você pode utilizar os operadores de comparação juntamente com a cláusula WHERE. Através dos

operadores você pode criar poderosas expressões para filtrar os dados de acordo com a necessidade da

sua aplicação.

= Igual a >= Maior ou Igual a

> Maior do que <= Menor ou igual a

< Menor do que <> Diferente

!> Não maior do que !< Não menor do que

% Todos

Operadores Lógicos

Você pode utilizar os operadores lógicos AND e OR em conjunto com a cláusula WHERE.

6

Page 11: Database Enviroment

Exemplos de instruções SQL

As tabelas abaixo mostram rotinas em SQL utilizadas em consultas, atualização, Exclusão e inserção de

informações nos campos dos bancos de dados.

Importante: Você pode utilizar o programa Microsoft Query para testar os exemplos abaixo. Para iniciar o

programa Microsoft Query localize e abra o arquivo Msqry32.exe.

Os exemplos abaixo utilizam os campos das tabelas contidas no banco de dados GrupoAbc.MDB. Antes

de começar a utilizar as instruções SQL abaixo, é recomendável abrir o banco de dados citado e estudar o

relacionamento entre os campos e as tabelas do banco de dados.

CO

NS

ULT

AR

Utilizando a cláusula SELECT para todos os campos.

“select * from tblprodutos”

Utilizando a cláusula SELECT para alguns campos

“select nmprodutodb,pvprodutodb from tblprodutos”

Utilizando a cláusula SELECT com ORDER BY

“select * from tblclientes order by nmclientedb asc”

Utilizando a cláusula SELECT com WHERE e operadores de comparação

“select * from tblclientes where ufclientedb = ‘PR’”

Utilizando a cláusula SELECT com WHERE e operadores de comparação e Lógicos

“select * from tblprodutos where pvprodutodb >0 and pvprodutodb <=50”

Importante: O símbolo (*) indica que a instrução select vai buscar as informações de todos os campos do

banco de dados. Você pode substituir o símbolo do * pelo(s) nome(s) do(s) campo(s) do banco de dados

que você deseja consultar.

AT

UA

LIZ

AR

Utilizando a cláusula UPDATE e SET

“update tblclientes set cepclientedb = 81020500”

Utilizando a cláusula UPDATE e SET com WHERE e operadores de comparação

“update tblclientes set ufclientedb = ‘PR’ where ufclientedb = ‘SC’”

Utilizando a cláusula UPDATE e SET com WHERE, operadores de comparação e operadores

lógicos

“update tblclientes set ufclientedb = ‘PR’ where ufclientedb = ‘SC’ and

sxclientedb = ‘masculino’”

Utilizando a cláusula UPDATE e SET com operadores aritiméticos

“update tblprodutos set pvprodutodb = pvproduto + (pvprodutodb * 0.60)”

Os exemplos abaixo mostram como excluir informações de uma ou mais tabelas do banco de dados.

Utilizando a cláusula DELETE

“delete cepclientedb from tblcliente”

Utilizando a cláusula DELETE com WHERE

“delete * from tblclientes where ufclientedb = ‘SC’”

7

Page 12: Database Enviroment

AP

AG

AUtilizando a cláusula DELETE e WHERE com operadores de comparação e operadores lógicos

“delete * from tblclientes where ufclientedb = ‘SC’ and sxclientedb =

‘masculino’”

Os exemplos abaixo mostram como inserir informações em uma tabela do banco de dados através da

cláusula INSERT INTO

INS

ER

IR

Utilizando a cláusula INSERT

“insert tblclientes values (‘Ana Cláudia’,’Rua das Flores,

900’,81020030,’[email protected]’)”

Utilizando a cláusula INSERT INTO

“insert into tblclientes (nmclientedb,enclientedb,cepclientedb,emclientedb)

values (‘Ana Cláudia’,’Rua das Flores, 900’,81020030,’[email protected]’)”

Utilizando a cláusula INSERT INTO e SELECT

Importante: Para adicionar textos que contenham apóstrofos, utilize o símbolo (‘) apóstrofo 2 vezes.

Exemplo: Marca D’água deve ser inserido como Marca D‘’água

8

Page 13: Database Enviroment

Utilizando o Microsoft Access 8.0/97

Criando um banco de dados no Microsoft Access

No Microsoft Access, selecione a opção Banco de dados vazio e, em seguida, clique OK

Na caixa abaixo, informe o local (pasta), o nome do banco de dados. Na caixa salvar como tipo mantenha a

opção Banco de dados do Microsoft Access (*.MDB) e, em seguida, clique em Criar.

Selecione a guia tabela e, em seguida, clique em novo. Por fim marque a opção modo de estrutura e clique

em Ok

No modo estrutura, você deve criar os campos que serão utilizados para armazenar informações (estoque,

clientes, fornecedores etc...).

Na coluna Nome do campo você deve informar o nome do campo de acordo com a informação que será

armazenada neste. Exemplo: Campo NOME armazena os nomes dos cliente.

Na coluna Tipo de dados, você deve escolher o tipo de informação que será armazenada no campo.

Exemplo: a campo NOME receberá os nomes dos clientes, por este fato o tipo de dados é texto.

Na coluna Descrição, você pode digitar mensagens explicativas para indicar como os campos devem ser

preenchidos. Exemplo: "..o campo nome deve ser preenchido com letras maiúsculas.."

9

Page 14: Database Enviroment

Neste ponto você já pode criar uma tabela utilizando a janela mostrada acima. Digite as informações da

tabela abaixo:

Nome do campo Tipo de dados

#Idprodb Autonumeração

coprodb Texto

nmprodb Texto

ctprodb Texto

qtprodb Texto

pcprodb Número

pvprodb Número

mgprodb Número

obprodb Memorando

Após digitadas as informações acima, selecione o campo idprodb e, em seguida, clique em editar chave

primária.

Salve a tabela com o nome produtosxyz e, em seguida, feche o banco de dados

10

Page 15: Database Enviroment

Utilizando o My-Sql 3.2.3

O MySql é um sistema de banco de dados servidor, isto é, além de controlar diversos arquivos de bancos

de dados e seus componentes, o My sql controla os usuários e suas permissões de acesso aos

componentes dos bancos de dados. Para criar um banco de dados no MySql você deve se conectar ao

banco de dados e, em seguida, utilizar comandos da linguagem SQL a partir do console do programa para

criar e ativar o banco de dados e, em seguida, criar as tabelas contendo os campos.

Conectando/Desconectando o MySql

1. Acesse o prompt do ms-dos e, em seguida, digite c:\mysql\bin\mysql. Por fim pressione ENTER

D:\>mysql\bin\mysql -u root -p

Enter password:******

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 4 to server version: 3.23.44-max-debug

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Importante: Algumas instalações do MySql permitem aos usuários se conectares como usuários anônimos

quando estão utilizando o servidor no computador local. Se este é o seu caso então para se conectar ao

MySql basta digitar: \mysql\bin\mysql e, em seguida, pressionar ENTER.

2. Para finalizar o MySql, na linha de comando mysql>, digite quit e, em seguida, pressione ENTER.

mysql> quit

Bye

Criando e abrindo um banco de dados

Para criar um banco de dados no MySql você deve:

1. no prompt do MySql, digite CREATE DATABASE nome_do_banco_de_dados e, em seguida,

pressione ENTER

mysql> CREATE DATABASE empresaxyz;

Query OK, 1 row affected (0.11 sec)

Importante: O MySql gera 03 arquivos para gerenciamento do banco de dados. A tabela abaixo descreve

cada um desses arquivos:

Arquivo Descrição

produtoxyz.frm Layout das tabelas

produtoxyz.MYI Dados das tabelas

produtoxyz.MYD Arquivo de Indice

11

Page 16: Database Enviroment

Para abrir um banco de dados você deve:

1. na linha de prompt do MySql, digite USE nome_do_banco_de_dados

mysql> USE empresaxyz;

Database changed

Criando tabelas e campos

Antes de criar as tabelas e os campos do banco de dados você precisa conhecer os comandos SQL que

definem o tipo de dados e as propriedades dos campos.

Para definir um campo com o tipo texto você utiliza o comando CHAR(qte) aonde qte é o tamanho

do campo fixo. Você ainda pode utilizar o comando VARCHAR(qte) aonde qte é o tamanho do

campo não fixo.

Para definir um campo com o tipo de dados numérico e inteiro utilize o comando INT(qte) aonde qte

corresponde ao tamanho do campo

Para definir um campo numérico com casas decimais utilize o comando DOUBLE(qte,decimais)

aonde qte corresponde ao tamanho do campo e decimais corresponde a quantidade de casas

decimais

Para criar campos do tipo data ou hora utilize o comando DATE

Para definir um campo como chave primária da tabela utilize o comando PRIMARY KEY(campo1,

campo2) aonde campo1 e campo2 correspondem aos nome dos campos

Para evitar que um campo tenha preenchimento zero utilize o comando UNSIGNED ZERFILL

Para definir um campo com numeração automática utilize o comando AUTO_INCREMENT

Para definir um valor padrão para o campo utilize o comando DEFAULT ‘valor’ aonde valor

corresponde ao valor gravado por padrão no banco de dados.

Para criar uma tabela dentro do banco de dados você deve:

1. No prompt do MySql, digite CREATE TABLE nome_da_tabela (campo tipo, campo tipo..)

mysql> CREATE TABLE produtoxyz (idprodb SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,

-> coprodb CHAR(20) UNSIGNED ZEROFILL DEFAULT ‘000’ NOT NULL,

-> nmprodb VARCHAR(100) NOT NULL,

-> ctprodb VARCHAR(20) NOT NULL,

-> qtprodb DOUBLE(10,2) NOT NULL,

-> pcprodb DOUBLE(10,2) NOT NULL,

-> pvprodb DOUBLE(10,2) NOT NULL,

-> mgprodb DOUBLE(10,2) NOT NULL,

-> obprodb VARCHAR(200) NOT NULL,

-> PRIMARY KEY(idprodb));

Query OK, 0 rows affected (0.44 sec)

12

Page 17: Database Enviroment

Importante: Para visualizar as tabelas do banco de dados utilize o comando SHOW nome_da_tabela

Para exibir a estrutura da tabela

1. No prompt do MySql digite DESCRIBE nome_da_tabela

mysql> DESCRIBE produtoxyz;

Field Type Null Key Default Extra

idprodb smallint(5) unsigned PRI NULL auto_increment

coprodb varchar(20)

nmprodb varchar(100)

ctprodb varchar(20)

qtprodb double(10,2) 0.00

pcprodb double(10,2) 0.00

pvprodb double(10,2) 0.00

mgprodb double(10,2) 0.00

obprodb varchar(200)

9 rows in set (0.22 sec)

13

Page 18: Database Enviroment

PHP

Criando e executando um arquivo em PHP

Para integrar seus script’s em php com o código HTML da sua página você pode utilizar as opções abaixo:

Neste primeiro exemplo é utilizado o sinal de menor(<) seguido do ponto de interrogação(?) e o nome PHP,

para indicar o início do script em PHP.

Para indicar o final do script é utilizado o ponto de interrogação (?) seguido do sinal de menor (<)

<?PHP

//exemplo de código eme PHP

echo phpinfo();

?>

A outra maneira é indicar o tipo de script dentro da tag <SCRIPT>. O atributo LANGUAGE recebe o nome

da linguagem enquanto o atributo RUNAT indica que os comandos serão interpretados pelo servidor.

<SCRIPT LANGUAGE=’php’ RUNAT=’server’>

//exemplo de código em php

echo phpinfo();

</SCRIPT>

Enviando informações do cliente para o servidor(Navegador)

Para compreender o envio de informações do cliente para o servidor imagine as situações abaixo:

Um usuário clicando no link de uma página Web;

Um usuário acionando o botão de um formulário para gravar informações de cadastro em um banco de

dados ou qualquer outro dispositivo de armazenamento.

Estas ações fazem o navegador enviar as informações do link ou do formulário através do protocolo HTTP.

Estas informações podem trafegar pelo cabeçalho(head) ou pelo corpo(body) do procolo HTTP.

As seções abaixo mostram como é possível controlar a maneira como as informações são enviadas para o

servidor a partir de um formulário ou link da página Web.

Enviando informações do servidor para o cliente(Servidor Web)

O servidor Web utiliza as linguagens ASP, PHP para coletar e analisar as informações do cabeçalho e do

corpo do protocolo HTTP.

Estas linguagens também se encarregam de efetuar a resposta do processamento para o cliente.

Integração do Formulário HTML e PHP

Para controlar a maneira como as informações dos campos de um formulário serão enviadas para o

servidor, você deve utilizar o atributo METHOD da tag FORM. Para maiores informações sobre o atributo

METHOD Consulte Criando formulário em HTML da apostila Script Enviroment.

14

Page 19: Database Enviroment

Ao preencher todos os campos e

clicar sobre o botão inscrever-se

os nomes dos campos do

formulários e os valores digitados

dentro dos campos serão

transmitidos pelo navegador

através do protocolo HTTP, para

o servidor Web

Quando as informações de um formulário são enviadas para processamento por um script php, os nomes e

valores dos campos do formulário ficam armazenados em variáveis de ambiente do PHP. Caso o envio seja

feito através do método POST, então as informações ficarão armazenadas na variável $HTTP_POST_VAR.

Porém se o envio for feito através do método GET então as informações ficarão armazenadas na variável

$HTTP_GET_VAR. O formulário abaixo mostra um exemplo de cadastro de pessoas.

Importante: Se a diretiva register_globals do arquivo PHP.INI estiver definida com o valor true, o nome do

campo do formulário será transformado em variável com escopo global.

Tornando a informação persistente na aplicação

Antes de tornar as informações persistentes você deve pensar em duas situações:

As informações digitadas no formulário devem ser visualizadas somente pelo usuário que preencheu o

formulário.

As informações devem estar disponíveis para todas as páginas da aplicação em que o usuário visitar,

para evitar à necessidade de autenticação do usuário no banco de dados à cada página que o mesmo

visita.

Para estes casos você pode utilizar as variáveis de sessão. O PHP possui funções que permitem a você

instanciar estas variáveis. A tabela abaixo mostra as funções utilizadas para gerenciar as variáveis de

sessão

15

Page 20: Database Enviroment

Função Descrição

Session_register Registra uma variável de sessão, na sessão atual.

Session_unregister Remove uma variável de sessão da sessão atual.

Session_destroy Destroi todas as variáveis da sessão atual.

Importante: as diretivas track_vars e register_globals do arquivo PHP.INI influenciam na forma como as

variáveis são armazenadas. A tabela abaixo mostra as comparações e valores destas diretivas.

Track_vars Register_globals Descrição

True(default) False As variáveis de sessão poderão ser criadas e utilizadas somente a

partir do array $HTTP_SESSION_VARS.

False True Todas as variáveis com escopo global poderão ser registradas como

variáveis de sessão. As variáveis de sessão poderão ser utilizadas

da mesma forma que as variáveis globais

True True Neste caso as entradas para variáveis globais e sessão possuirão

os mesmos valores.

O exemplo abaixo verifica se o campo txtnome do formulário foi preenchido, caso a condição seja

verdadeira a função session_register é utilizada para registrar 3 variável sessão e, em seguida, a variável

de ambiente $HTTP_POST_VAR busca informações digitadas no campo do formulário de cadastro de

clientes através e insere estes valores dentro das variáveis de sessão a partir do array

$HTTP_SESSION_VARS.

<?PHP

if ($HTTP_POST_VAR['txtnome'] != '')

{

$nome = $HTTP_POST_VAR("txtnome");

$senha = $HTTP_POST_VAR("txtsenha");

$profissao = $HTTP_POST_VAR("selprof");

session_register("nome","senha","profissao");]

echo ‘Bem vindo ‘. $HTTP_SESSION_VARS["nome"]

echo ‘Sua senha é “ . $HTTP_SESSION_VARS["senha"]

echo Sua área de atuação é : . $HTTP_SESSION_VARS["profissao"]

}

?>

Passando informações através de variáveis dinâmicas

Além dos campos dos formulários, você pode enviar variáveis através dos links de uma página. Este tipo de

variável é conhecida como variável do tipo caracter de consulta ou QueryString. O código abaixo mostra os

16

Page 21: Database Enviroment

links da página consulta_produto.php, utilizando a variável categoria. O valor desta variável pode mudar

de acordo com o link escolhido pelo usuário.

<HTML><BODY>

<A HREF=’consulta_produto.php?categoria=mm’> Moda Masculina </A>

<A HREF=’consulta_produto.php?categoria=mf’> Moda Feminina</A>

<A HREF=’consulta_produto.php?categoria=mi’> Moda Infantil </A>

</BODY></HTML>

O exemplo abaixo mostra o script da página consulta_produto.php. Este script direciona o usuário para

uma página específica de acordo com o link escolhido na página acima.

<?PHP

if ($categoria == ‘mm’)

{ header(http://localhost/moda_masculina.php);}

else if ($categoria == ‘mf’)

{ header(http://localhost/moda_feminina.php);}

else if ($categoria == ‘mi’)

{ header(http://localhost/moda_infantil.php);}

?>

Importante: Você pode utilizar mais de uma variável, utilizando o separador &. A linha abaixo mostra um

link para a página consulta_cliente.php com as variáveis cidade e estado

<A HREF=’consulta_cliente.php?cidade=curitiba&estado=pr’> Curitiba/Pr </A>

Enviando informações para o usuário

Para gerenciar o processamento e envio de informações no servidor PHP você vai utilizar os métodos do

objeto string e as funções de Controle de Saída.

Funções Descrição

echo, print Envia informações para o cliente

ob_start Ativa o buffer

ob_end_flushEnvia as informações armazenadas no cache do

servidor e finaliza o buffer

ob_end_clean Apaga o conteúdo do buffer

No código abaixo o comando ob_start() indica que a linha echo será armazenada no cache do servidor e

apresentada ao cliente(browser) após o inerpretador PHP ler da linha de comando ob_end_flush.

<?PHP

ob_start();

echo “Bom dia “ . $HTTP_SESSION_VARS[“nome”]

ob_end_flush();

ob_end_clean();

?>

17

Page 22: Database Enviroment

Gerenciando um banco de dados MySql

A PHP possui um objeto para comunicação com o banco de dados sevidor MySql. A tabela abaixo

apresenta alguns métodos que permitem a comunicação com o MySql e o gerenciamento do banco de

dados e seus componentes.

Método Descrição

Mysql_connect() Abre uma conexão com o MySql

Mysql_pconnect() Abre uma conexão persistente com o MySql

Mysql_select_db() Seleciona um banco de dados do MySql

Mysql_query() Envia uma consulta SQL para o banco de dados MySql ativo

Mysql_num_rows() Número de linhas retornado pela consulta SQL

Mydql_fetch_array() Retorna um array contendo os registros extraídos do banco de dados. Os

campos do array são numerados a partir de 0.

Mysql_close() Fecha a conexão com o MySql

A próxima seção mostra como utilizar as funções da tabela acima em tarefas báscias dentro de uma

aplicação PHP.

Estabelecendo a comunicação com o banco de dados

Nesta seção você vai aprender como criar uma conexão com o Mysql utilizando as funções mostradas na

tabela acima

<?

$conexao = mysql_connect("localhost","ODBC@localhost","");

$base = mysql_select_Db("grupoabc",$conexao);

?>

Utilizando rotinas atuárias

Esta seção mostra como inserir, atualizar, excluir e consultar informações em um banco de dados MYSQL

através da função mysql_query

Gravando Informações no Banco de dados MySQL

O Exemplo abaixo mostra a gravação dos dados de um formulário de cadastro de usuários dentro da tabela

tblusuarios do banco de dados grupoabc.

<?

ob_start();

$conexao = mysql_connect("localhost","ODBC@localhost","");

$banco = mysql_select_Db("grupoabc",$conexao);

$strsql = "insert into tblusuarios (nmusuariodb,emusuariodb,cfusuariodb,rgusuariodb)";

$strsql = $strsql . "values ('$txtusuario','$txtcorreio','$txtcpf','$txtrg')";

$registro = mysql_query($strsql,$conexao);

echo "Dados Gravados com sucesso !!!";

18

Page 23: Database Enviroment

ob_end_flush();

?>

Atualizando Informações no Banco de dados MySQL

<?

ob_start();

$conexao = mysql_connect("localhost","ODBC@localhost","");

$banco = mysql_select_Db("grupoabc",$conexao);

$strsql = "update tblprodutos set pvprodutodb = ";

$strsql = $strsql . "pvprodutodb + (pvcprodutodb * ($txtmargem/100))"

$strsql = $strsql . "where idfornedb = $selforn"

$registro = mysql_query($strsql,$conexao);

echo "Dados Atualizados com sucesso !!!";

ob_end_flush();

?>

Excluindo Informações no Banco de dados MySQL

<?

ob_start();

$conexao = mysql_connect("localhost","ODBC@localhost","");

$banco = mysql_select_Db("grupoabc",$conexao);

$strsql= "delete from tblprodutos where idprodutodb = $selproduto"

$registro = mysql_query($strsql,$conexao);

echo "Dados Excluídos com sucesso !!!";

ob_end_flush();

?>

Consultando Informações no Banco de dados MySQL

<?

$conexao = mysql_connect("localhost","ODBC@localhost","");

$base = mysql_select_Db("empresaxyz",$conexao);

$strsql = "select * from produto where ctprodudb = $co order by nmprodutodb asc";

$consulta = mysql_query($strsql,$conexao);

echo mysql_num_rows($consulta) . "<br>";

for($aux=0;$aux<mysql_num_rows($consulta);$aux++)

{

$campo = mysql_fetch_array($consulta);

echo $campo[0] ." ". $campo[1] . "<br>" ;

}

?>

19

Page 24: Database Enviroment

Utilizando componentes COM no PHPO PHP possui um conjunto de funções utilizadas para manipular componentes COM desenvolvidos em

qualquer linguagem de programação. A tabela abaixo mostra estas funções.

Função Descrição

COM Oferece uma estrutura para integração com

componentes distribuídos e seu código em PHP

O exemplo de código abaixo mostra o componente ADO(ActiveX Data Object) instanciado através da

função COM.

<?

$conexao = new COM("ADODB.Connection");

$conexao->Open("dns_grupoabc");

$registros = $conexao->Execute("select * from tblprodutos order by nmprodutodb");

for (m==0;m<=registros-->recordcount-1;m++)

{

echo registros-->fields[m].value;

registros-->movenext;

}

?>

20

Page 25: Database Enviroment

ASP

A Estrutura da Active Server Pages

ASP possui uma estrutura simples e objetiva, tornando o seu trabalho com desenvolvedor de soluções para

Web o menos complexo possível. Abaixo uma lista com os nomes dos objetos principais, as propriedades e

métodos associados a estes objetos, bem como algumas coleções de objetos.

Objeto Componentes

Application Permite ao desenvolvedor criar uma coleção de variáveis que armazenam

informações durante a execução da sua aplicação Web. Estas informações podem

ser utilizadas por todos os usuários da aplicação. As informações destas variáveis

ficam contidas na memória durante transmissões HTTP. A sintaxe para criação de

uma variável application é application(“nomedavariavel”).

Session O objeto session permite a você como desenvolvedor, armazenar informações sobre

o usuário(nome, produto escolhido etc..) Durante o período de utilização da

aplicação WEB, isto é, a navegação do usuário pelas páginas da sua Aplicação. O

Servidor cria automaticamente um objeto SESSION quando um usuário acessa uma

página da aplicação Web. O Servidor esvazia o objeto SESSION quando o tempo da

sessão Expira ou quando a sessão é abandonada

Request O objeto request armazena informações solicitadas pelo cliente e envia estas

informações para serem processadas no servidor. Estas informações serão

transmitidas ao servidor através do protocolo HTTP.

Form: representa o(s) campo(s) do(s) formulário(s) de uma aplicação Web;

Cookies: representa o(s) cookie(s) de uma aplicação Web

ServerVariables: representa as variáveis de ambiente de um servidor Web

QueryString: Armazenar conjuntos de variáveis que podem ser utilizadas para

passar valores como parametros para consultas à bases de dados, matrizes e etc...

Este objeto suporta coleções de objetos como: Form, Cookies e ServerVariables.

Response Utilizado para enviar informações do servidor para o lado cliente da conexão. O

objeto response oferece suporte somente a coleção Cookies

As propriedades do objeto response são: Buffer; ContentType; Expires;

ExpiresAbsolute; Status.

O objeto response oferece suporte aos métodos: AddHeader; AppendToLog;

BinaryWrite; Clear; End; Flush; Redirect; Write. Os exemplos de código da seção

Utilizando os objetos Request e Response mostram a utilização destes

componentes.

Server CreateObject Método Inicializa um componente activeX. Exemplo:

ADODB.Connection.

21

Page 26: Database Enviroment

Objeto Componentes

Execute Método Executar um arquivo ASP. Alternativa aos arquivos include.

GetLastError Método Retorna uma descrição para o objeto AspError

Este objeto oeferece suorte a propriedade ScriptTimeout e aos métodos:

CreateObject, HTMLEncode, MapPath, URLEncode

AspError NUMBER propriedade Retorna um código de erro padrão representando o

componente que está falhando

Description Propriedade Retorna uma breve descrição sobre o erro ocorrido

ASPDescriptionPropriedade Retorna uma descrição mais detalhada do erro, se

este erro for um erro relacionado aos componentes ASP.

FILE Propriedade Indica o nome do arquivo que estava sendo processado

quando o erro ocorreu.

CATEGORY Propriedade Especifica se o erro ocorrido está relacionado ao

ASP, a uma linguagem de script ou um objeto activeX

Criando e executando um arquivo em ASP

Assim como os arquivos criados em PHP, os arquivos ASP são interpretados pelo servidor. Os comandos

em Active Server Pages podem aparecem de duas formas básicas. A tabela abaixo descreve as opções de

codificação.

<%

..Código em ASP

%>

Esta opção é mais utilizada quando você desejar

mesclar comandos em ASP e/ou VBscript com tags

HTML

<SCRIPT LANGUAGE=’vbscript’ RUNAT=’server’>

..Código em ASP

</SCRIPT>

Utilize a tag SCRIPT e o atributo RUNAT com o

valor Server para indicar que o script deverá ser

interpretado pelo servidor. Esta opção torna o

código mais organizado facilitando a depuração.

Informação persistente na aplicação

Tornar a informação persistente de forma global ou através de sessão através da ASP não é uma tarefa

difícil. Você pode utilizar o objeto Para passar a mesma informação para todos os usuários de uma

aplicação você deve utilizar o objeto application. Quandose tratar de informações específicas sobre um

usuário utilize o objeto Session.

Passando informações específicas para um usuário

O objeto session possui propriedades e métodos que ajudam você a controlar o estado de uma sessão. As

linhas de comando abaixo mostram como definir o tempo de duração da sessão, criar uma variável sessão,

finalizar uma sessão.

22

Page 27: Database Enviroment

<%

session.timeout = 5

session(“nome”) = request.form(“nome”)

session(“senha”) = request.form(“senha”)

if err.number <> 0 then

session.abandon

response.write “Sessão finalizada”

end if

%>

<%=”Olá “ & session(“nome”) & “ sua senha é “ & session(“senha”)%>

Importante: Uma sessão termina automaticamente se um usuário não requisitar ou atualizar uma página

dentro da aplicação durante um período específico de tempo definido pela propriedade Timeout.

Integração do formulário HTML com ASP

O servidor web utiliza o objeto REQUEST para avaliar os pedidos feitos pelo aplicativo cliente via HTTP. No

objeto REQUEST você pode utilizar a coleção FORMS para buscar as informações enviadas a partir de um

formulário através do método POST.

Para manipular informações enviadas pelo método GET você deve utilizar a coleção QUERYSTRING do

objeto REQUEST.

Enviando informações para o usuário

Para controlar a forma como o resultado do processamento servidor serão enviados por HTTP para o

cliente(browser) você deve utilizar o objeto RESPONSE.

As linhas de comando abaixo mostram como armazenar o todo o processamento no cahce do servidor

antes de envia-lo para o cliente; Indicar se o navegador deve consultar a versão da página armazena no seu

cache ou buscar a página no servidor; Enviar os dados para o cliente e redirecionar sua aplicação para uma

página específica.

<%

response.buffer = true

response.expires = 0

response.write “Olá “ & request.form(“nome”)

if err.number <> 0 then

response.redirect “erro.htm”

end if

%>

Importante: Você pode utilizar a linha de comando response.flush para enviar a informação armazenada

no cache do servidor antes que o mesmo termine de processar todo o script da página.

23

Page 28: Database Enviroment

Gerenciando um banco de dados

ASP conta com um série de componentes para manipulação de dados. estes componentes são

desenvolvidos pela própria Microsoft e por alguns fabricantes externos. Exemplo: CHILLISOFT que produz o

ChilliASP para ambientes Linux. Para maiores informações consulte http://www.chillisoft.com/

O componente mais utilizado para acesso e manipulação de dados é denominado ADO (ActiveX Data

Object) que como o próprio nome mostra, utiliza componentes ActiveX para acessar e manipular bases de

dados de diferentes fabricantes.

Utilizando ADO com Active Server Pages

Neste tópico você aprender sobre como é possível gerenciar informações de diferentes bases de dados

através da linguagem Active Server Pages e do componente ADO(ActiveX Data Object).

O ADO é composto por diversos objetos que permitem ao desenvolvedor estabelecer comunicação com

uma base de dados, além da manipulação dessa base.

A seguir os passos que você deve seguir para estabelecer uma conexão com a sua base de dados.

Para compreender com maior clareza e facilidade as explicações

Objeto Connection

Este objeto representa a conexão da aplicação Web com a base de dados. O objeto CONNECTION fornece

diversas propriedades e métodos que possibilitam abrir uma base de dados, executar uma instrução SQL

para consultar, inserir, deletar etc.. dados, fechar uma conexao com a base de dados. O objeto connection

também oferece propriedades que permitem ao desenvolvedor definir o “estado” de uma conexão. A tabela

abaixo mostra uma referência às propriedades e métodos do objeto CONNECTION

Nome Tipo Descrição

CommandTimeout Propriedade Período em segundos para execução de um comando. O valor padrão é

30 seg.

ConnectionString Propriedade Informações necessárias para comunicação com a base de dados.

CursorLocation Propriedade Define se o ponteiro de registros vai utilizar as informações do servidor

ou do cliente(cache)

Mode Propriedade Determina a permissão de abertura da fonte de dados

Close Método Fechar uma conexão aberta. Libera recursos que estavam sendo

utilizados para sustentar a conexão com o cliente

Execute Método Executar uma instrução em SQL, uma tabela ou um objeto Command do

ADO.

Open Método Estabelecer uma ligação com a fonte de dados

connection e sql para consulta a base de dados

Neste exemplo a variável CONEXAO recebe uma inicialização do objeto CONNECTION pertencente ao

componente activeX ADO, através do método CREATEOBJECT do objeto SERVER. Este procedimento faz

com que a variável CONEXAO possa utilizar as propriedades e métodos do objeto CONNECTION.

24

Page 29: Database Enviroment

A variável CONEXAO utiliza a propriedade CONNECTIONSTRING para identificar informações referentes a

fonte de dados como por exemplo o driver(DRIVER) e o nome do banco de dados(DBQ).

A variável CONEXAO utiliza o método OPEN do objeto CONNECTION para fazer uma conexao com a fonte

de dados.

A variável STRSQL recebe uma linha de comando em SQL, contendo a instrução SELECT que retornará

todos(*) os registros da tabela produtos.

A variável REGISTRO armazena uma cópia de todos os registros da tabela produtos. Como? Lembre que a

variável CONEXAO representa o objeto CONNECTION e que o objeto CONNECTION possui um método

denominado EXECUTE, que está sendo utilizado para executar as instruções contidas dentro da variável

STRSQL, que consultam todos(*) os registros da tabela produtos.

Importante: um conjunto de registros coletados de uma banco de dados através do ADO é conhecido como

objeto RECORDSET. Sendo assim é possível associar a variável registros com as propriedades e métodos

do objeto RECORDSET do ADO. A linha de comando REGISTROS.MOVENEXT, por exemplo, faz o

ponteiro de registros descer uma vez na lista de valores contidos na variável REGISTRO.

<%Dim conexao, regafetadosDim sqlstr, registros, cateescoSet conexao = server.createobject("ADODB.Connection")conexao.connectionstring = "DRIVER=Driver do Microsoft Access (*.mdb);” &_ “DBQ=C:\empresaxyz\empresaxyz.mdb"conexao.opensqlstr = "SELECT * FROM produtosxyz"Set registros = conexao.execute(sqlstr,,adcmdtext)%><HTML><HEAD><TITLE>Arquivo objconn.asp</TITLE></HEAD><BODY><H1 ALIGN="center">Lista de Produtos EmpresaXyZ</H1><TABLE ALIGN="center" BORDER="1" CELLPADDING="5"><%Do While not registros.eof%><TR><TD><%response.write registros("idprodb").value%></TD><TD><%response.write registros("nmprodb").value%></TD><TD><%response.write registros("ctprodb").value%></TD><TD><%response.write registros("pvprodb").value%></TD><%registros.movenext%></TR><%Loopconexao.close%></TABLE></BODY></HTML>

O objeto recordset (registros)

De agora em diante você vai desenvolver consultas a fonte de dados através do objeto RECORDSET,

contido no componente ADO. Este objeto possui propriedades e métodos que permitem ao desenvolvedor

25

Page 30: Database Enviroment

gerenciar os campos e registros de uma ou mais tabelas na fonte de dados. A tabela abaixo mostra as

propriedades e métodos mais utilizados por este objeto:

Componente Tipo Descrição

Open Método

ActiveConnection Propriedade Indica o objeto connection que será utilizado na consulta

CursorLocation Propriedade Indica se o ponteiro de registros será utilizado no lado cliente ou

servidor da conexão.

Source Propriedade Instruções em Sql para consultar, inserir, editar, apagar informações

do banco de dados relacionados a conexão

Update Método Atualizar informações no banco de dados

AddNew Método Adicionar um novo registro no banco de dados

Delete Método Deletar informações selecionadas por uma instrução SQL

MoveFirst Método Movimento o "ponteiro de registros" para o primeiro registro de uma

tabela

MoveLast Método Movimento o "ponteiro de registros" para o último registro de uma

tabela

MoveNext Método Movimento o "ponteiro de registros" para o próximo registro de uma

tabela

MovePrevious Método Movimento o "ponteiro de registros" para o registro anterior de uma

tabela

LockType Propriedade Determina o tipo de operação permita com os registros de uma base

de dados.

RecordCount Propriedade Indica a quantidade de registros indicados em um objeto recordset.

Para que você possa manipular os registros no cache cliente, atribua a

propriedade cursorlocation = 3

Ao executar uma consulta SQL à uma base de dados, o resultado será uma conjunto de registros. A este

conjunto de registros dá-se o nome RECORDSET

Consultando informações em um banco de dados

Neste exemplo a variável OBJCON recebe uma inicialização do objeto CONNECTION e, em seguida, a

variável OBJCON utiliza a propriedade CONNECTIONSTRING para definir o banco de dados que será

utilizado(aberto). Por fim a variável OBJCON utiliza o método OPEN para abrir a conexão com o banco de

dados.

A variável OBJREG recebe a inicialização do objeto RECORDSET e, em seguida, a variável OBJREG utiliza

a propriedade SOURCE para definir a instrução SQL que executará a consulta ao banco de dados.

A variável OBJREG utiliza a propriedade ACTIVECONNECTION para definir qual a conexão que será

utilizada para consultar o banco de dados e por fim a variável OBJREG utiliza o método OPEN para coletar

os dados no banco de dados.

<%dim objcondim objreg, strcon

26

Page 31: Database Enviroment

set objcon = server.createobject("adodb.connection")objcon.connectionstring = "DRIVER=Driver do Microsoft Access(*.mdb);” &_ “DBQ=C:\empresaxyz\empresaxyz.mdb"objcon.openset objreg = server.createobject("adodb.recordset")objreg.source = "select * from produtosxyz"objreg.activeconnection = objconobjreg.cursorlocation = 3objreg.openresponse.write “<table align=center><tr><td>Código</td><td>Descrição</td>” &_ “<td>Preço</td></tr>”while not objreg.eof

response.write "<TR><TD>", &objreg("coprodb").value, "</TD><TD>" &_ objreg(“nmprodb”).value & “</TD><TD>” objreg(“pvprodb”).value &_ “</TD></TR>”

objreg.movenextwend%>

Inserindo Informações em um banco de dados

Neste exemplo você vai utilizar propriedades e métodos do objeto RECORDSET para inserir informações no

banco de dados através de um formulário.

A variável OBJREG, recebe a inicialização do objeto RECORDSET, através do método CREATEOBJECT

associado ao objeto SERVER. Após, a variável objreg utiliza a propriedade SOURCE para definir a

instrução SQL. Esta por sua vez, seleciona os registros da coluna nmprodb e ctprodb contidos na tabela

produtosxyz.

A variável objreg utiliza a propriedade activeconnection para buscar a conexão ativa através da variável

objcon e, em seguida, utiliza a propriedade LOCKTYPE para indicar a maneira como a tabela de tados será

manipulada. Por fim a variável OBJREG utiliza o método OPEN para executar o objeto recordset e assim

obter as informações do banco de dados.

A variável OBJREG utiliza o método ADDNEW para fazer uma abertura de registro no banco de dados.

<HTML><BODY><%dim objcondim objreg, strconset objcon = server.createobject("adodb.connection")objcon.connectionstring = "DRIVER=Driver do Microsoft Access (*.mdb);”&_ “DBQ=C:\empresaxyz\empresaxyz.mdb"objcon.open

set objreg = server.createobject("adodb.recordset")objreg.source = "select nmprodb, ctprodb, pvprodb from produtosxyz"objreg.activeconnection = objconobjreg.locktype = 3objreg.open

objreg.AddNewobjreg("nmprodb").value = request.form("txtnome")objreg("ctprodb").value = request.form("txtcategoria")objreg("pvprodb").value = request.form("txtprvenda")

objreg.update

27

Page 32: Database Enviroment

objcon.close%></BODY></HTML>

Importante: O código abaixo executa a mesma tarefa do código anterior, a diferença está na utilização da instruções insert into da linguagem SQL<%dim objcondim nome, categoriadim strsql

nome = request.form("txtnome")categoria = request.form("txtende")

set objcon = server.createobject("adodb.connection")strsql = "insert into produtosxyz(nmprodb, ctprodb) values ('"&nome&"','"&categoria&"')"objcon.connectionstring = "DRIVER=Driver do Microsoft Access (*.mdb);”&_ “DBQ=C:\empresaxyz\empresaxyz.mdb"objcon.openobjcon.execute(strsql)objcon.close%>

Atualizando informações no banco de dados

Para atualizar as informações de uma banco de dados através do objeto recordset você pode utilizar o

código:

<HTML><BODY><%dim objcondim objregset objcon = server.createobject("adodb.connection")objcon.connectionstring = "DRIVER=Driver do Microsoft Access (*.mdb);”&_ “DBQ=C:\empresaxyz\empresaxyz.mdb"objcon.openset objreg = server.createobject("adodb.recordset")objreg.source = "select * from produtosxyz where ctprodb =”&_

“'"&request.form("selcategoria")&''"objreg.activeconnection = objconobjreg.locktype = 3objreg.openobjreg.movefirstwhile not objreg.EOF

objreg("ctprodb").value = request.form("selnovacategoria")objreg.updateobjreg.movenext

wendobjcon.close%></BODY></HTML>

Apagando informações no banco de dados

No exemplo abaixo o objeto recordset representado pela variável objreg seleciona o registro desejado

através de uma instrução SQL que compara o valor existente na coluna codprodb com o valor digitado no

28

Page 33: Database Enviroment

campo txtende do formulário. A partir deste ponto, o método DELETE do objeto recordset é acionado a

partir da variável OBJREG. Após marcado o registro para deleção, o método UPDATE atualiza a base de

dados.

<HTML><BODY><%dim objcondim objregset objcon = server.createobject("adodb.connection")objcon.connectionstring = "DRIVER=Driver do Microsoft Access (*.mdb);”&_ “DBQ=C:\empresaxyz\empresaxyz.mdb"objcon.open

set objreg = server.createobject("adodb.recordset")objreg.source = "select coprodb from produtosxyz where coprodb =” &_ “’"&request.form("selcodigo")&"' "objreg.activeconnection = objconobjreg.locktype = 3objreg.open

if isempty(objreg) = true thenresponse.write "Não existe(m) registros para exclusão"

elseobjreg.deleteobjreg.updateresponse.write "o registro " & request.form("selcodigo") & " foi excluído com sucesso !!!"end ifobjcon.close%></BODY></HTML>

Gerenciando componentes C.O.M com ASP

Utilizando o objeto aspmail

O componente activeX ASPMAIL 4.x permite a você enviar mensagens usando o protocolo padrão

SMTP(simple mail transfer protocol).

Como a maioria dos componentes activeX, o ASPMAIL 4.x deve ser instalado no computador servidor para

que as suas bibliotecas(*.DLL). para maiores informações consulte...

O componente activeX SMTPsvg.Mailer que representa o ASPMAIL pode ser inicializado através do método

CREATEOBJECT do objeto SERVER.

O objeto SMTPsvg.Mailer possui diversas propriedades e métodos que podem ser utilizadas para definir as

partes do e-mail:

As variáveis NOME, MENS, EMAI e OPIN receberão os valores digitados pelo usuário no formulário de

correio eletrônico, através da coleção FORMS do objeto REQUEST.

A variável OBJCORREIO recebe uma inicialização do objeto SMTPsvg.Mailer(representa o controle ActiveX

ASPMAIL), através do método CREATEOBJECT do objeto SERVER. A variável OBJCORREIO poderá

29

Page 34: Database Enviroment

utilizar as propriedades e métodos do componente ActiveX ASPMAIL. A tabela abaixo descreve as

propriedades e métodos associados ao objeto.

Componente Tipo DescriçãoRemoteHost Propriedade Definir o servidor SMTP(Simple Mail Transfer Protocol). O host deve ser

ajustado de acordo com o provedor de e-mail do remetente. Exemplo:Objcorreio.remotehost = "smtp.bol.com.br"

FromName Propriedade Nome do remetente. Exemplo:objcorreio.FromName = "Nome do Remetente"

FromAddress Propriedade Endereço do Remetente. Exemplo:Objcorreio.FromAddress = "[email protected]"

AddRecipient Propriedade Endereço do Destinatário. Exemplo:Objcorreio.AddRecipient "[email protected]"

Subject Propriedade Assunto do correio eletrônicoBodyText Propriedade Representa o corpo da página.SendMail Método Envia a mensagem para o destinatárioResponse Método Mostra respostas do procesamento de envio das mensagens.

<%

dim nome, mens, emai, opin

dim objcorreio

nome = request.form("txtcliente")

opin = request.form("optopina")

mens = request.form("msgnome")

emai = request.form("txtmailclie")

set objcorreio = server.createobject("SMTPsvg.Mailer")

objcorreio.RemoteHost = "smtp.bol.com.br"

objcorreio.FromName = nome

objcorreio.FromAddress = emai

objcorreio.AddRecipient "EmpresaXyz", "[email protected]"

objcorreio.Subject = "Sugestões em 2001"

objcorreio.BodyText = mens & "<BR>" & opin

If not objcorreio.SendMail then

response.write "A mensagem não foi enviada <BR>"

response.write objcorreio.response

else

response.write "Parabéns<BR>Sua mensagem foi enviada com sucesso !!!"

response.write "<A HREF="formcorreio.htm"> Clique Aqui</A> para voltar ao

formulário."

end if

%>

30

Page 35: Database Enviroment

Registrando componentes ActiveX no Servidor

Para registrar um componente ActiveX você deve registrar a sua DLL utlizando o arquivo

31

Page 36: Database Enviroment

XML

No modelo atual de transmissão de informação o servidor dispensa muito do seu tempo processando

informações dos pedidos feitos pelo cliente.

Cabe ao servidor por exemplo identificar o tipo de navegador que o cliente possui para então enviar o

conteúdo HTML correto para o mesmo. Do outro lado o navegador perde muito tempo aguardando esta

resposta do servidor. Para solucionar este problema imagine o servidor enviando o mesmo conteúdo web

para os clientes sem se preocupar com o tipo de navegador. O XML propõe este modelo de transmissão.

O XML(extensible markup language) é uma linguagem orientada por tags que oferece um formato para

descrever dados de forma estruturada, possibilitando obter e gerenciar conteúdo de/para diferentes

plataformas

XML Vs. HTML

XML pode ser visto como um HTML generalizado. Porém, a finalidade do XML não é substituir o HTML. O

XML e o HTML possuem diferentes finalidades e objetivos. O XML é uma linguagem que possibilita você

definir suas próprias tags para descrever de forma organizada, seqüências de dados(banco de dados) de

diferentes plataformas. O HTML possui tags específicas com o objetivo de determinar como as informações

serão mostradas no navegador. A tabela abaixo mostra exemplos em HTML e XML

HTML XML

Criando Documento XML

Antes de começar a desenvolver seu documento XML você deve entender seus componentes. A lista

abaixo mostra como trabalhar com estes componentes.

O nome das tags XML são sugestivas, isto é, definem o tipo de dados que elas armazenam.

<preco> 3500 </preco>. Estes nomes são sensíveis a maiúsculas e minúsculas.

As tags são denominadas elementos. Dentro de um documento XML os elementos são considerados

unidades de informação.

Os elementos são compostos, isto é, possuem uma tag de início e uma tag de finalização. Exemplo:

<quantidade> 900 </quantidade>

Dentro de um elemento podem existir os atributos. O exemplo abaixo mostra o atributo codigo do

elemento produto.

<produto codigo=001>

<descricao>Jaqueta de Couro</descricao>

<preco>450</preco>

</produto>

Os elementos podem estar aninhados. O exemplo abaixo mostra os elementos <descricao> e <preco>

aninhados ao elemento <produto>

<produto codigo=001>

32

Page 37: Database Enviroment

<descricao>Jaqueta de Couro</descricao>

<preco>450</preco>

</produto>

Geralmente os elementos de um documento XML podem ser repetidos diversas vezes. O exemplo abaixo

mostra a relação de alguns produtos com suas descrições e preços.

<produto codigo=001>

<descricao>Jaqueta de Couro</descricao>

<preco>450</preco>

</produto>

<produto codigo=002>

<descricao> Calça Jeans</descricao>

<preco>120</preco>

</produto>

Estrutura de um documento XML

Além dos elementos, um documento XML é composto de instruções de processamento, Comentários, Os

elementos são classificados em Elemento ROOT, Elemento CHILD, Elementos Vazios. Estes elementos

serão exemplicados nos tópicos desta seção. O exemplo abaixo mostra um documento XML completo.

<?xml version=”1.0” encoding=”8859-1”>

<estoque>

<produto codigo=001>

<descricao>Jaqueta de Couro</descricao>

<preco>450</preco>

</produto>

<produto codigo=002>

<descricao> Calça Jeans</descricao>

<preco>120</preco>

</produto>

</estoque>

Prolog

O prolog possui diversos elementos que definem o início do processamento do documento XML, versão do

documento, tipo de codificação para os caracteres do document e os DTD(Document Type Definition) ou

Schemas.

Instruções de Processamento

Para iniciar o processamento de um documento XMl você deve utilizar <(sinal de menor) seguido do

símbolo ?(interrogação). O exemplo abaixo mostra a linha de início de um document XML.

<?xml version=”1.0” encoding=”8859-1”?>

A instrução Version determina a versão do código XML utilizado.

33

Page 38: Database Enviroment

A instrução encoding determina o tipo de caracter que será utilizado no documento XML.

A tabela abaixo mostra os tipo de caracter mais utilizados nos documentos XML.

Código Especificação

Comnetários

Você pode inserir comentários em qualquer posição, entre os elementos de um documento XML. Os

comentários incial com <!—e terminam com -->, eles podem conter diversas linhas. O exemplo abaiixo

mostra um comentário para o elemento <quantidade>.

<quantidade> 900 </quantidade> <!—Valor do estoque mínimo -->

Elementos ROOT

Também conhecido como elemento principal. O elemento ROOT contém todos os outros elementos do

documento XML. O exemplo abaixo mostra o elemento ROOT <estoque>.

Cada documento XML pode conter apenas um documento ROOT.

<estoque>

<produto codigo=001>

<descricao>Jaqueta de Couro</descricao>

<preco>450</preco>

</produto>

<produto codigo=002>

<descricao> Calça Jeans</descricao>

<preco>120</preco>

</produto>

</estoque>

Elementos CHILD

Os dados dentro de um documento XML são hierárquicos. Um elemento pode conter outros elementos que

são denominados elementos CHILD. No exemplo abaixo:

Os elementos <descricao> e <preco> são denominados elementos CHILD;

Os elementos <dolar> e <real> são elemento CHILD do elemento <preco>

<produto>

<descricao> Calça Jeans</descricao>

<preco>

<dolar> 45 </dolar>

<real> 100 </real>

</preco>

34

Page 39: Database Enviroment

</produto>

Elementos Vazios

Elementos que não necessitam de conteúdo de texto ou de outros elementos são denominados elementos

EMPTY. O exemplo abaix mostra s duas maneiras utilizadas na criação de elementos EMPTY.

<vendido></vendido> ou <vendido/>

Criando Data Island com XML e HTML

Data Island é o nome dado à união de um documento XML com um documento HTML. A partir do Internet

Explorer 5.0 você pode utilizar o comando <XML> para criar Data Island.

Um Data Island pode ser embutido dentro de um documento HTML, ou pode ser vinculado através de um

arquivo Externo. A tabela abaixo mostra os exemplos de Data Island Embutido e Data Island Vinculado. Os

dados XML são mostrados dentro de uma tabela HTML

Data Island Embutido Data Island Vinculado

Utilizando Validação com Schemas

Melhorando a aparência com XSLT

Através do XSL você pode especificar regras à serem seguidas pelos elementos de um documento XML.

Para associar um documento XML ã um arquivo XSL você deve utilizar a linha de comando abaixo.

<?xml-stylesheet type=”text/xsl” href=”formato_estoque.xsl”?>

O atributo TYPE define o tipo de documento utilizado.

O atributo HREF determina o arquivo XSL que será interpretado pelo analisador XSL

Mecanismos do XSLT

Criando Um arquivo XSLT

UTILIZANDO ACTIVE SERVER PAGES E MSXML3.0

Ao iniciar o estudo sobre a tecnologia XML(Extensible Markup Language), você deve tentar compreender a

estrutura do documento XML. O exemplo abaixo mostra um documento XML visto dentro do navegador IE5,

você vai notar que não existe muita diferença entre o código fonte e a apresentação, porém, você pode

utilizar inumeros recursos como DATAISLAND, XSLT para melhorar esta apresentação.

35

Page 40: Database Enviroment

Você pode utilizar ASP para gerenciar o modelo de objeo XML proposto pela Microsoft, denominado

MSXML

O exemplo de código abaixo utiliza propriedade e métodos associados ao objeto XMLDOM. A seguir, uma

tabela descrevendo as propriedades e métodos do componente activeX Microsoft.XMLDOM.

Componente Tipo DescriçãoPreserveWhitespace Propriedade Preserva os espaços em branco dos dados

Load Método Efetua a leitura de um documento XML

documentElement Propriedade Retorna o nome do elemento ROOT

(principal)

createElement Método Cria um elemento(nó)

appendChild Método

createAttribute Método Cria um atributo para um elemento(nó)

Text Propriedade Representa a informação contida no

elemento

setAttributeNode Propriedade Ajustar o attributo para um elemento

específico

save Método Salva um documento XML

Arquivo: "aspxml.asp"

<%

dim objcon, objreg

dim objxml, existexml, objroot, objprod, objnome, objqte, objvend, attid, attco

set objcon = server.createobject("adodb.connection")

36

Page 41: Database Enviroment

objcon.connectionstring = "DRIVER=Driver do Microsoft Access (*.mdb);DBQ=c:\empresaxyz\

empresaxyz.mdb"

objcon.open

set objreg = server.createobject("adodb.recordset")

objreg.source = "Select * from produtosxyz"

objreg.activeconnection = objcon

objreg.open

set objxml = server.createobject("Microsoft.XMLDOM")

objxml.PreserveWhiteSpace = true

existexml = objxml.load("c:\empresaxyz\empresaxyz.xml")

if existexml = true then

set objroot = objxml.documentElement

else

set objroot = objxml.createElement("produtos")

objxml.appendChild objroot

end if

while not objreg.eof

set objprod = objxml.createElement("produto")

set attid = objxml.createAttribute("id")

set attco = objxml.createAttribute("cod")

attid.text = objreg("idprodb").value

attco.text = objreg("coprodb").value

objprod.setAttributeNode attid

objprod.setAttributeNode attco

objroot.appendChild objprod

set objnome = objxml.createElement("nome")

set objqtde = objxml.createElement("qtde")

set objvenda = objxml.createElement("venda")

objnome.text = objreg("nmprodb").value

objqtde.text = objreg("qtprodb").value

objvenda.text = objreg("pvprodb").value

objprod.appendChild objnome

objprod.appendChild objqtde

37

Page 42: Database Enviroment

objprod.appendChild objvenda

objreg.movenext

wend

objxml.save("c:\empresaxyz\empresaxyz.xml")

%>

38