Artigo Clube Delphi Edição 42 - Sessões Práticas
Artigo da Revista Clube Delphi Edição 42.
Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML.
Sessões Práticas
Criando um carrinho de compras com IntraWeb
Neste artigo veremos como criar passo-a-passo, usando o IntraWeb, um carrinho de compras – uma das aplicações mais comuns encontradas na web. O funcionamento da aplicação é bastante simples: o usuário compra um ou mais produtos e essas informações são armazenadas e uma cache (uma espécie de memória). Quando o usuário finaliza a compra, os dados são enviados ao banco de dados.
Um grande problema ao se construir tal tipo de aplicação é a manipulação de sessões, visto que o usuário fará várias solicitações (requisições HTTP) ao aplicativo servidor, e tudo precisa ser armazenado em memória – que deve ser exclusiva para cada usuário – até que a compra seja finalizada. Como o HTTP é um protocolo stateless (sem-estado), devemos usar sessões para que as informações sejam mantidas entre as requisições. Veremos aqui que o IntraWeb torna esse processo totalmente transparente.
Nota: para o exemplo utilizaremos o tratamento de sessões integrado do IntraWeb, disponível apenas no modelo Application Mode (padrão no Delphi Enterprise/Architect). O modelo Page Mode não dá suporte a esse mecanismo.
Atenção: O exemplo deste artigo foi construído utilizando o IntraWeb 5.1. Veja na Edição 41 como baixar e instalar essa nova versão, que está disponível no endereço www.atozedsoftware.com.
Criando o banco de dados
Vamos usar o InterBase como banco de dados para nossa "loja virtual". Abra o IBConsole e crie um novo banco chamado “LOJA.GDB”; chame o Interactive SQL e crie as tabelas usando o script da Listagem 1.
Listagem 1. Script para criação do banco
create table PRODUTOS
(ID_PRODUTO integer not null primary key,
DESCR_PRODUTO char(60),
FOTO blob,
VALOR numeric(9,2));
create table PEDIDOS
(ID_PEDIDO integer not null primary key,
DATA date,
HORA time);
create table ITENS_PEDIDO
(ID_PEDIDO integer not null references PEDIDOS (ID_PEDIDO),
ID_PRODUTO integer not null references PRODUTOS (ID_PRODUTO),
QUANTIDADE integer,
primary key (ID_PEDIDO,ID_PRODUTO));
Nota: A estrutura do banco criado aqui é bastante simples – foram mantidos apenas os campos essenciais para o funcionamento básico de um carrinho de compras.
Para evitar a repetição de técnicas apresentadas em artigos anteriores na ClubeDelphi, não criaremos um formulário para cadastros de produtos. Assim você deve inserir alguns registros na tabela PRODUTOS antes de construir a aplicação IntraWeb, fornecendo código (ID_PRODUTO), descrição (DESCR_PRODUTO), valor e uma figura (FOTO), para cada um. Para incluir produtos com uma figura, utilizei o QuickDesk (atualmente, o produto mudou de nome e agora chama-se IB Manager), um poderoso front-end para o InterBase (veja a Figura 1). Você pode, claro, usar o seu front-end preferido.
"
[...] continue lendo...Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo