Capítulo 7. Antes de prosseguir com o Delphi, devemos criar o banco de dados Interbase ou Firebird com todas as suas propriedades.



Documentos relacionados
Capítulo 6. Delphi x Web x WebBroker. Primeiro Exemplo (Hello World)

Sistema básico de cadastro em Delphi com banco de dados InterBase.

Capítulo 8. O recurso mais utilizado na Internet é sem dúvida o . Neste capítulo iremos tratar deste assunto com extrema facilidade.

Capítulo 11. WebSnap. Conhecendo os componentes. Algumas curiosidades. 202 Delphi 7 Internet e Banco de Dados

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Conteúdo O que é?... 4 Histórico... 4 Onde Baixar?... 4 Diferença entre Firebird e o Interbase... 4 Como instalar?... 4 Instalando o Ibexpert...

Scriptlets e Formulários

Inserindo Dados no Banco de Dados Paradox.

Migrando Bancos de Dados pelo Delphi

SISTEMA GERENCIAMENTO DE PRODUTOS PHP E MySQL 1. APRESENTAÇÃO

Define o campo ID com chave primaria com gerator de auto incremento ALTER TABLE CONTATO ADD CONSTRAINT PK_CONTATO PRIMARY KEY (ID);

Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL.

VTEX TRIGGER ABANDONED CART TEMPLATE DO . VTEX On-line Applications

<script language="javascript1.2" src="

Basicamente iremos precisar de uma base de dados na qual iremos armazenar os registros feitos pelos vistantes: Vamos armazenar os seguintes dados:

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Programação para Internet I

User Manager 1.0. edtusuario Nome do novo Usuário a ser criado edtsenha Senha do novo usuário Label

Introdução à Tecnologia Web

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO

Prof. Omero, pág. 63. Banco de Dados InterBase.

Faculdades Network Bacharelado em Sistemas de Informação Tópicos Avançados. Aulas 25 e 26 Exemplo de Aplicação usando JSP e MySQL

Java na Web. Aplicações Web

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Capítulo 12. Intraweb. Algumas curiosidades. 236 Delphi 7 Internet e Banco de Dados

CRIAÇÃO DE RELATÓRIOS EM DELPHI

1) Crie uma nova página chamada Exercício.html e deixe-a com o seguinte layout:

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS

GUIA PHP com MYSQL Autor: Everton Mendes Messias

MANUAL DE INSTALAÇÃO DE REDE. Versão 1.0 MÓDULO 1: Avaliações de terrenos, construções e apartamentos;

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES I PROFESSOR RAFAEL BARRETO

Uma vez no form, dê um clique duplo sobre o objeto e insira a tela conforme abaixo. Não esqueça do & e das teclas de atalho.

Nota de Aplicação. Relatório em HTML no Vijeo Citect 1.0. Suporte Técnico Brasil. Versão:

4. Características Gerais das Tabelas do HTML

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho.

English Português. By erickalves 25 Julho, :08. Devido à política (#) de segurança. Encontrar Blogs Crie o seu blog de graça Ganhe prêmios

Introdução. HyperText Markup Language HTML. Formulário. Fluxo do Formulário. Fluxo do Formulário. Fluxo do Formulário. Fluxo do Formulário

C# - Conexão com MySQL

22/05/2012 CRIANDO UM PROJETO COM TELAS ESTRUTURA DA APLICAÇÃO LOGIN BANCO DE DADOS TAREFAS PHP MYSQL PARTE 2

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

Introdução. História. Como funciona

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

JDBC Java Database Connectivity

INTRODUÇÃO AO DESENVOLVIMENTO WEB

Desenvolvimento de Sistemas Web Prof. Leandro Roberto. Aula 18 JavaScript: Eventos MySQL PHP (insert, update e delete)

Fortes Report Parte 1 Desenvolvendo o Primeiro Relatório

Exercícios Práticos de HTML e JavaScript. <FORM ACTION="mailto:teste@gmail.com" METHOD="POST" ENCTYPE="text/plain" NAME="cadastro">

TUTORIAL JSP & SERVLET

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

6. Introdução à Linguagem PHP

Os componentes de um formulário são: Form, Input, Select e AreaText

Dicas para Javascript (parte2) 21 - IMPEDIR DIGITAÇÃO DE CARACTERES NÃOO NUMÉRICOS

CRM MITIS GERAR SMP PELO ASSISTENTE

Configuração Do Firebird no Ide NetBeans

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

Banco de Dados Oracle 10g

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

CRIANDO UM BANCO DE DADOS


JDBC. Prof. Márcio Bueno

Adicionando Propriedades e Funcionalidades aos Componentes Parte II

Programação para Android. Aula 08: Persistência de dados SQL

PROGRAMAÇÃO WEB DO LADO DO CLIENTE

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

A linguagem SQL

Comandos de Manipulação

Front-End Uso da Linguagem Turbo Delphi para Acesso ao Banco de Dados Mysql

CGI - HTML - CSS -

Interface para Regras de Negócios em Multi-Banco

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto :

Mini-curso de PHP. Aulas ministradas por: André Luis de Paula Arthur Kalsing Diego Silva

Cabeçalho do documento

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br

Roteiro para Solicitação e instalação de certificado digital para aplicação (Windows 2000)

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

Integridade Referencial Interface Visual SQL Server

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

8VDQGR5HSRUW0DQDJHUFRP&ODULRQH3RVWJUH64/ -XOLR&HVDU3HGURVR 8VDQGRSDUkPHWURV

Sistema Click Principais Comandos

1. HTML - Introdução. Hyper Text Markup Language. É uma linguagem de formatação de conteúdos. Portável. Ficheiros de pequena dimensão

Validação de formulários utilizando Javascript

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Apostila Delphi V 1.0

Relatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves Rui Barradas Hélton Miranda 68477

Prof. Carlos Majer Aplicações Corporativas UNICID

O código acima descreve o formulário com uma caixa de texto e dois botões

FMH Mestrado Gestão do Desporto Sistemas de Informação

Utilizando os componentes da paleta DBExpress para acesso ao banco Firebird

<link rel="stylesheet" type="text/css" href="imagens.css" />

MANUAL DE BOAS PRÁTICAS

PROGRAMAÇÃO PARA INTERNET. Fonte: Raul Paradeda

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Transcrição:

92 Delphi 7 Internet e Banco de Dados Capítulo 7 Projeto Cadastro de Clientes Neste capítulo iremos desenvolver um projeto completo de cadastro de clientes, com as principais funções: inclusão, alteração, exclusão e consulta de registros. Antes de prosseguir com o Delphi, devemos criar o banco de dados Interbase ou Firebird com todas as suas propriedades. Criando o Banco de Dados Entre no IBConsole e caso não tenha registrado o Servidor Local, selecione a opção Server/Register e informe as propriedades conforme a figura 7.1. Figura 7.1 Registrando Servidor Local Interbase 92

Projeto Cadastro de Clientes 93 No campo UserName digite SYSDBA (com letras maiúsculas), e no campo PassWord digite masterkey (com letras minúsculas). Estas informações são para o usuário padrão. Agora vamos criar o banco de dados Clientes.GDB. Selecione a opção DataBase/Create Database e crie um novo banco de dados como ilustra a figura 7.2. Figura 7.2 Criação do banco de dados Clientes.GDB Agora iremos criar os objetos do banco de dados Clientes.GDB. Dentro do Interative SQL execute os seguintes comandos: Criação da Tabela TBCLIENTE create table tbcliente ( cod_cliente integer not null, razao_social varchar(50), endereco varchar(50), cidade varchar(50), estado varchar(2), cep varchar(8), email varchar(50), primary key (cod_cliente) ); Execute o comando através das teclas CTRL-E. Criação do Generator create generator gen_clientes; Execute o comando através das teclas CTRL-E. Criação da Trigger TGClientes set term ;

94 Delphi 7 Internet e Banco de Dados CREATE TRIGGER TG_CLIENTES FOR TBCLIENTE ACTIVE BEFORE INSERT POSITION 0 AS BEGIN NEW.COD_CLIENTE = GEN_ID(GEN_CLIENTES,1); END SET TERM; Execute o comando através das teclas CTRL-E. Com isso finalizamos a criação dos objetos. Finalize o IBConsole e vamos iniciar nossas atividades no Delphi. Criando as definições iniciais Crie uma nova aplicação no Delphi através das opções File/New..., selecione a opção Web Server Application e clique no botão OK para confirmar. Na janela seguinte selecione a opção CGI Stand-Alone executable (figura 7.3). Figura 7.3 Seleção do tipo da aplicação Insira um objeto do tipo TSQLConnection, e crie uma nova conexão clicando no botão +. Altere as seguintes propriedades: TSQLConnection BancoDados DriverName Interbase CommitRetaining True DataBase SQLDialect 3 LoginPrompt False localhost:c:/cursoweb /clientes.gdb

Projeto Cadastro de Clientes 95 Objetos Básicos Insira um objeto do tipo TSQLDataSet e altere as propriedades que seguem: TSQLDataSet tbclientes Name tbclientes SQLConnection BancoDados CommandText select * from tbclientes Insira um objeto do tipo TSQLQuery e altere as propriedades que seguem. TSQLQuery SQLGeral Name SQLGeral SQLConnection BancoDados SQL select * from tbclientes where cod_cliente= :pcodigo Na propriedade PARAMS do SQLGeral, altere o tipo do parâmetro PCODIGO para Integer. Objeto de Inclusão Insira um objeto do tipo TSQLQuery e altere as propriedades que seguem. TSQLQuery SQLInclui Name SQLInclui SQLConnection BancoDados SQL INSERT INTO TBCLIENTE VALUES(0,:prazao, :pendereco,:pcidade, :pestado,:pcep,:pemail) Na propriedade PARAMS do SQLInclui altere os tipos dos parâmetros para String.

96 Delphi 7 Internet e Banco de Dados Objeto de Alteração Insira um objeto do tipo TSQLQuery e altere as propriedades que seguem. TSQLQuery SQLAltera Name SQLAltera SQLConnection BancoDados SQL UPDATE TBCLIENTE SET RAZAO_SOCIAL=:prazao, ENDERECO=:pendereco, CIDADE=:pcidade, ESTADO=:pestado, CEP=:pcep, EMAIL=:pemail WHERE COD_CLIENTE=:pcodigo Na propriedade PARAMS do SQLAltera altere os tipos dos parâmetros para String, com exceção do parâmetro PCODIGO, que deve ser Integer. Objeto de Exclusão Insira um objeto do tipo TSQLQuery e altere as propriedades que seguem: TSQLQuery SQLExclui Name SQLExclui SQLConnection BancoDados SQL DELETE FROM TBCLIENTE WHERE COD_CLIENTE=:pcodigo Na propriedade PARAMS do SQLExclui altere o tipo do parâmetro para Integer. Objeto de Pesquisa Principal Insira um objeto do tipo TDataSetTableProducer e altere as seguintes propriedades.

Projeto Cadastro de Clientes 97 TDataSetTableProducer ppclientes Name PPClientes DataSet tbclientes Em seguida, através do duplo clique adicione os campos, CODIGO e RAZAO_SOCIAL, conforme a figura 7.4 Figura 7.4 Tabela de Clientes Para inserir as colunas ALTERA e EXCLUI clique no primeiro botão. No Object Inspector você poderá alterar as propriedades de cada coluna, melhorando o visual da aplicação. No evento OnCellFormat do objeto PPClientes, insira o código que segue. if (CellRow>0) and (CellColumn=2) then CellData:='<a href="altera?codigo='+tbclientes.fieldbyname('cod_cliente').asstring+ '"><img src="\imagens\altera.gif" border=0> </a>'; if (CellRow>0) and (CellColumn=3) then CellData:='<a href="exclui?codigo='+tbclientes.fieldbyname('cod_cliente').asstring+ '"><img src="\imagens\elimina.gif" border=0></a>'; Neste ponto indicamos duas funções: para alterar e excluir clientes. Rotinas de manutenção Agora insira um objeto do tipo TDataSetPageProducer e altere as seguintes propriedades.

98 Delphi 7 Internet e Banco de Dados TDataSetPageProducer ppinclui Name PPInclui HTMLFILE../inc_clientes.html Neste ponto devemos criar o arquivo inc_clientes.html Listagem do arquivo inc_clientes.html <html> <head> <title>inclusâo DE CLIENTES</title> <STYLE TYPE="text/css"> input { font-family: Arial, Helvetica, sans-serif; font-size: 9pt; color:#000066; background:#cccccc; border-right:2px solid #000066; border-left:2px solid #000066; border-top:2px solid #000066; border-bottom:2px solid #000066; } </STYLE> </head> <body bgcolor="#ffffff" text="#000000"> <table width="100%" border="1" bordercolor="#000066" bgcolor="#000066"> <td> <div align="center"><font color="#ffffff" face="verdana"><b>inclusao DE CLIENTES</b></font></div> </table> <table align=center border=1 cellpadding=0 cellspacing=0 width=100% bordercolor="#000066"> <td bgcolor=white valign=top width="97%"> <p align="center"> </p> <form name="form1" method="post" action="confirma_inc_cliente"> <table width="100%" border="0"> <td width="23%" height="20"> <div align="right"><font face="verdana" size="2">razão Social:</font></div> <td width="77%" height="20"> <p> <font face="verdana" size="2">

Projeto Cadastro de Clientes 99 <input type="text" name="razao_social" size="90" maxlength="70"> </font></p> <div align="right"><font face="verdana" size="2">endereço:</font></div> <td width="77%"> <font face="verdana" size="2"> <input type="text" name="endereco" size="90" maxlength="70"> </font> <div align="right"><font face="verdana" size="2">cidade:</font></div> <td width="77%"> <font face="verdana" size="2"> <input type="text" name="cidade" size="60" maxlength="50"> </font> <div align="right"><font face="verdana" size="2">uf:</font></div> <td width="77%"> <input type="text" name="uf" size="4" maxlength="2"> <div align="right"><font face="verdana" size="2">cep:</font></div> <td width="77%"> <font face="verdana" size="2"> <input type="text" name="cep" size="10" maxlength="8"> </font> <div align="right"><font face="verdana" size="2">email Contato:</font></div> <td width="77%"> <font face="verdana" size="2"> <input type="text" name="email" size="60" maxlength="50"> </font> </table> <p align="center"> <font face="verdana" size="2"> <input type="submit" name="submit" value="confirma Inclusão"> <input type="button" name="submit2" value="desiste" onclick="javascript:history.go(-1)"> </font></p> </form> </table> </body> </html>

100 Delphi 7 Internet e Banco de Dados Agora insira um objeto do tipo TDataSetPageProducer e altere as seguintes propriedades. TDataSetPageProducer ppaltera Name PPAltera HTMLFILE../alt_clientes.html DataSet SQLGeral Neste ponto devemos criar o arquivo alt_clientes.html <html> <head> <title>alteração DE CLIENTES</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <STYLE TYPE="text/css"> input { font-family: Arial, Helvetica, sans-serif; font-size: 9pt; color:#000066; background:#cccccc; border-right:2px solid #000066; border-left:2px solid #000066; border-top:2px solid #000066; border-bottom:2px solid #000066; } </STYLE> </head> <body bgcolor="#ffffff" text="#000000"> <table width="100%" border="1" bordercolor="#000066" bgcolor="#000066"> <td> <div align="center"><font color="#ffffff" face="verdana"><b>alteração DE CLIENTES</b></font></div> </table> <table align=center border=1 cellpadding=0 cellspacing=0 width=100% bordercolor="#000066"> <td bgcolor=white valign=top width="97%"> <p align="center"> </p> <form name="form1" method="post" action="confirma_alt_cliente?codigo=<#cod_cliente>"> <table width="100%" border="0"> <td width="23%" height="20"> <div align="right"><font face="verdana" size="2">razão Social:</font></div> <td width="77%" height="20">

Projeto Cadastro de Clientes 101 <p> <font face="verdana" size="2"> <input type="text" name="razao_social" size="90" maxlength="70" value="<#razao_social>"> </font></p> <div align="right"><font face="verdana" size="2">endereço:</font></div> <td width="77%"> <font face="verdana" size="2"> <input type="text" name="endereco" size="90" maxlength="70" value="<#endereco>"> </font> <div align="right"><font face="verdana" size="2">cidade:</font></div> <td width="77%"> <font face="verdana" size="2"> <input type="text" name="cidade" size="60" maxlength="50" value="<#cidade>"> </font> <div align="right"><font face="verdana" size="2">uf:</font></div> <td width="77%"> <input type="text" name="uf" size="4" maxlength="2" value="<#estado>"> <div align="right"><font face="verdana" size="2">cep:</font></div> <td width="77%"> <font face="verdana" size="2"> <input type="text" name="cep" size="10" maxlength="8" value="<#cep>"> </font> <div align="right"><font face="verdana" size="2">email Contato:</font></div> <td width="77%"> <font face="verdana" size="2"> <input type="text" name="email" size="60" maxlength="50" value="<#email>"> </font> </table> <p align="center"> <font face="verdana" size="2"> <input type="submit" name="submit" value="confirma Alteração"> <input type="button" name="submit2" value="desiste" onclick="javascript:history.go(-1)"> </font></p> </form>

102 Delphi 7 Internet e Banco de Dados </table> </body> </html> Actions de manutenção Neste ponto iremos criar as Actions. Crie uma Action alterando as propriedades que seguem. TWebActionItem principal Default True Name principal PathInfo /principal Insira o código que segue no evento OnAction. tbclientes.close; tbclientes.commandtext:='select * FROM TBCLIENTE WHERE RAZAO_SOCIAL LIKE '+''''+'%'+ Request.ContentFields.Values['razao']+'%'+''''; tbclientes.open; Response.Content:='<HR><A HREF="inclusao">Inclusão de Clientes</A>'+ '<FORM METHOD=POST ACTION="CONSULTA">'+ 'Consulta <INPUT TYPE=TEXT NAME=RAZAO SIZE=40>'+ '<INPUT TYPE=SUBMIT></FORM><HR>'+ ppclientes.content; Crie outra Action alterando as propriedades que seguem. TWebActionItem Inclusao Default False Name inclusao PathInfo /inclusao PageProducer ppinclui Crie outra Action alterando as propriedades que seguem.

Projeto Cadastro de Clientes 103 TWebActionItem Altera Default False Name Altera PathInfo /altera Insira o código que segue no evento OnAction. SQLGeral.ParamByName('pcodigo').value:=StrtoInt(Request.QueryFields.Values['codigo']) ; SQLGeral.Open; Response.Content:=ppAltera.Content; SQLGeral.Close; Crie outra Action alterando as propriedades que seguem. TWebActionItem Exclui Default False Name Exclui PathInfo /exclui Insira o código que segue no evento OnAction. { Exclui Cliente } SQLExclui.ParamByName('pcodigo').Value:=StrtoInt(Request.QueryFields.Values['codigo'] ); SQLExclui.ExecSQL; Response.Content:='Registro excluido com sucesso'; Crie outra Action alterando as propriedades que seguem. TWebActionItem confirma_inc_cliente Default False Name confirma_inc_cliente PathInfo /confirma_inc_cliente

104 Delphi 7 Internet e Banco de Dados Insira o código que segue no evento OnAction. { Inclui Cliente } SQLInclui.ParamByName('prazao').Value:=Request.ContentFields.Values['razao_social']; SQLInclui.ParamByName('pendereco').Value:=Request.ContentFields.Values['endereco']; SQLInclui.ParamByName('pcidade').Value:=Request.ContentFields.Values['cidade']; SQLInclui.ParamByName('pestado').Value:=Request.ContentFields.Values['uf']; SQLInclui.ParamByName('pcep').Value:=Request.ContentFields.Values['cep']; SQLInclui.ParamByName('pemail').Value:=Request.ContentFields.Values['email']; SQLInclui.ExecSQL; Response.Content:='Registro incluido com sucesso'; Crie outra Action alterando as propriedades que seguem. TWebActionItem confirma_alt_cliente Default False Name confirma_alt_cliente PathInfo /confirma_alt_cliente Insira o código que segue no evento OnAction. { Altera Cliente } SQLAltera.ParamByName('pcodigo').Value:=Request.QueryFields.Values['codigo']; SQLAltera.ParamByName('prazao').Value:=Request.ContentFields.Values['razao_social']; SQLAltera.ParamByName('pendereco').Value:=Request.ContentFields.Values['endereco']; SQLAltera.ParamByName('pcidade').Value:=Request.ContentFields.Values['cidade']; SQLAltera.ParamByName('pestado').Value:=Request.ContentFields.Values['uf']; SQLAltera.ParamByName('pcep').Value:=Request.ContentFields.Values['cep']; SQLAltera.ParamByName('pemail').Value:=Request.ContentFields.Values['email']; SQLAltera.ExecSQL; Response.Content:='Registro alterado com sucesso'; Figuras da Aplicação As figuras que seguem ilustram o resultado da nossa aplicação.

Projeto Cadastro de Clientes 105 Figura 7.5 WebModule Figura 7.6 Actions Figura 7.7 Tela Principal da Aplicação

106 Delphi 7 Internet e Banco de Dados Figura 7.8 Inclusão de Clientes Figura 7.9 Alteração de Clientes Figura 7.10 Consulta

Projeto Cadastro de Clientes 107 Listagem 7.1 Código completo projeto Clientes unit un_clientes; interface uses SysUtils, Classes, HTTPApp, DBXpress, FMTBcd, DB, SqlExpr, DBWeb, HTTPProd, DSProd; type TWebModule1 = class(twebmodule) BancoDados: TSQLConnection; tbclientes: TSQLDataSet; ppclientes: TDataSetTableProducer; ppinclui: TDataSetPageProducer; SQLGeral: TSQLQuery; ppaltera: TDataSetPageProducer; SQLInclui: TSQLQuery; SQLAltera: TSQLQuery; SQLExclui: TSQLQuery; procedure ppclientesformatcell(sender: TObject; CellRow, CellColumn: Integer; var BgColor: THTMLBgColor; var Align: THTMLAlign; var VAlign: THTMLVAlign; var CustomAttrs, CellData: String); procedure WebModule1confirma_inc_clienteAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); procedure WebModule1confirma_alt_clienteAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); procedure WebModule1alteraAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); procedure WebModule1excluiAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); procedure WebModule1consultaAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); private { Private declarations } public { Public declarations } end; var WebModule1: TWebModule1; implementation {$R *.DFM} procedure TWebModule1.ppClientesFormatCell(Sender: TObject; CellRow, CellColumn: Integer; var BgColor: THTMLBgColor; var Align: THTMLAlign; var VAlign: THTMLVAlign; var CustomAttrs, CellData: String); begin if (CellRow>0) and (CellColumn=2) then CellData:='<a href="altera?codigo='+tbclientes.fieldbyname('cod_cliente').asstring+ '"><img src="..\..\imagens\altera.gif" border=0></a>';

108 Delphi 7 Internet e Banco de Dados if (CellRow>0) and (CellColumn=3) then CellData:='<a href="exclui?codigo='+tbclientes.fieldbyname('cod_cliente').asstring+ '"><img src="..\..\imagens\elimina.gif" border=0></a>'; end; procedure TWebModule1.WebModule1confirma_inc_clienteAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); begin { Inclui Cliente } SQLInclui.ParamByName('prazao').Value:=Request.ContentFields.Values['razao_social']; SQLInclui.ParamByName('pendereco').Value:=Request.ContentFields.Values['endereco']; SQLInclui.ParamByName('pcidade').Value:=Request.ContentFields.Values['cidade']; SQLInclui.ParamByName('pestado').Value:=Request.ContentFields.Values['uf']; SQLInclui.ParamByName('pcep').Value:=Request.ContentFields.Values['cep']; SQLInclui.ParamByName('pemail').Value:=Request.ContentFields.Values['email']; SQLInclui.ExecSQL; end; Response.Content:='Registro incluido com sucesso'; procedure TWebModule1.WebModule1confirma_alt_clienteAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); begin { Altera Cliente } SQLAltera.ParamByName('pcodigo').Value:=Request.QueryFields.Values['codigo']; SQLAltera.ParamByName('prazao').Value:=Request.ContentFields.Values['razao_social']; SQLAltera.ParamByName('pendereco').Value:=Request.ContentFields.Values['endereco']; SQLAltera.ParamByName('pcidade').Value:=Request.ContentFields.Values['cidade']; SQLAltera.ParamByName('pestado').Value:=Request.ContentFields.Values['uf']; SQLAltera.ParamByName('pcep').Value:=Request.ContentFields.Values['cep']; SQLAltera.ParamByName('pemail').Value:=Request.ContentFields.Values['email']; SQLAltera.ExecSQL; end; Response.Content:='Registro alterado com sucesso'; procedure TWebModule1.WebModule1alteraAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); begin SQLGeral.ParamByName('pcodigo').value:=StrtoInt(Request.QueryFields.Values['codigo']) ; SQLGeral.Open; Response.Content:=ppAltera.Content; SQLGeral.Close; end;

procedure TWebModule1.WebModule1excluiAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); begin { Exclui Cliente } Projeto Cadastro de Clientes 109 SQLExclui.ParamByName('pcodigo').Value:=StrtoInt(Request.QueryFields.Values['codigo'] ); SQLExclui.ExecSQL; Response.Content:='Registro excluido com sucesso'; end; procedure TWebModule1.WebModule1consultaAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); begin tbclientes.close; tbclientes.commandtext:='select * FROM TBCLIENTE WHERE RAZAO_SOCIAL LIKE '+''''+'%'+ Request.ContentFields.Values['razao']+'%'+''''; tbclientes.open; end; Response.Content:='<HR><A HREF="inclusao">Inclusão de Clientes</A>'+ '<FORM METHOD=POST ACTION="CONSULTA">'+ 'Consulta <INPUT TYPE=TEXT NAME=RAZAO SIZE=40>'+ '<INPUT TYPE=SUBMIT></FORM><HR>'+ ppclientes.content; end.

110 Delphi 7 Internet e Banco de Dados Anotações de Dúvidas? Preciso Revisar Anotações Gerais