Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Aplicações Web com Webbroker – Parte III

Veja neste artigo de Fabricio Desbessel, a terceira parte sobre aplicações Web com Webbroker.

Aplicações Web – Webbroker – Parte III

 

Nesse terceiro artigo vamos criar a parte de alteração de registro. Primeiramente abra seu editor de HTML, e crie um documento que contenha um formulário com campos para alterar o registro e um botão. Veja como deve ficar a página na Figura 1.

 

 

Figura 1. Pagina HTML para alteração

Para um layout mais correto, crie uma tabela de 5 linhas e 2 colunas. Na primeira coluna coloque o texto referente ao campo e na segunda coloque um TextField . Também é necessário colocar um Name nos TextField’s. Coloque os nomes conforme os campos da tabela de países. Como essa página nos trará os campos preenchidos, pois, queremos alterar um registro, precisaremos criar Tag’s que o Delphi reconheça no Value dos TextField’s. Dependendo do seu editor Htlm talvez seja necessário alterar isso através do código.
Veja como fica o código Html do TextField nome:

 

 

Todos os campos do formulário deverão seguir esse padrão: com o nome igual ao campo da tabela e com uma tag (<#NOME>) que o Delphi possa reconhecer. Para o campo nome ainda é necessário defini-lo com leitura pois o mesmo é o nosso campo da chave da tabela e não poderemos alterá-lo. Para isso é necessário acrescentar readonly na definição do campo. Então o código inteiro ficará:

 

 

Lembrando, readonly é só no campo nome. No Action do Form Html coloque: Country.exe/alterarGravar

Salve o arquivo como alterar.htm dentro da pasta da aplicação. Agora no Delphi, adicione mais um componente PageProducer da paleta Internet. Mude sua propriedade Name para pgpAlterar e na propriedade HTMLFile encontre o arquivo alterar.htm salvo anteriormente.

Precisaremos criar componentes de acesso aos dados que nos traga somente o registro que deve ser alterado. Então teremos uma consulta com parâmetro. Coloque e configure o seguinte componente:

 

SqlDataSet (Paleta DBExpress)

-Mude a propriedade SQLConnection para SqlConnection1

-CommandType para ctQuery

-CommandText para Select * From COUNTRY Where NAME = :NAME

-Name para sdsPais

-PARAMS defina o DataType para ftString do parâmetro NAME

-Clique duas vezes sobre o componente

-No FieldEditor (tela que se abriu quando clicou duas vezes), clique com o botão direito do mouse (abrindo o menu de contexto) e escolha Add fields... (ou CTRL+A). Nesse momento serão adicionados os campos existentes na tabela Country.

 

Como precisamos somente as informações de um único registro, não precisamos utilizar o Provider e nem o ClientDataSet. Também teremos que criar a ação alterar no WebModule. Clique duas vezes no WebModule e no ActionList, clique no botão Add New. Na propriedade PathInfo coloque /alterar. No evento onAction dessa ação coloque o seguinte código:

 

Listagem 1. Código da ação /alterar

sdsPais.Params.ParamValues['NAME']:=

  Request.QueryFields.Values['NAME'];

sdsPais.Open;

Response.Content:=pgpAlterar.Content;

sdsPais.Close;

 

Esse código preenche o parâmetro com a informação passada no link, através de um campo de consulta (Request.QueryFields). Abre a consulta e chama o Response do Page Producer. No Page Producer colocaremos o código para substituir os values dos campos conforme o resultados da consulta. Coloque o seguinte código no evento OnHtmlTag do pgAlterar:

 

Listagem 2. Código do evento OnHtmlTag do pgAlterar

if TagString='nome' then

  ReplaceText:=sdsPaisNAME.Value;

if TagString='capital' then

  ReplaceText:=sdsPaisCAPITAL.Value;

if TagString='continente' then

  ReplaceText:=sdsPaisCONTINENT.Value;

if TagString='area' then

  ReplaceText:=FloatToStr(sdsPaisAREA.Value);

if TagString='populacao' then

  ReplaceText:=FloatToStr(sdsPaisPOPULATION.Value);

 

Note que para cada campo é necessário verificar a TagString e sobrepor o texto conforme a informação solicitada. Com isso, já estamos exibindo a informação que queremos alterar. Agora falta tratarmos da ação que receberá os campos alterados e salvará na base de dados. Para executar a alteração vamos criar uma instrução SQL de Update em um Componente SQLDataSet. Então adicione esse componente no Data Module e configura suas propriedades como segue:

 

-Mude a propriedade SQLConnection para SqlConnection1

-CommandType para ctQuery

-CommandText para :

Update COUNTRY Set

CAPITAL=:Capital,

CONTINENT=:Continente,

AREA=:Area,

POPULATION=:Populacao

Where

NAME=:Nome

 

-Name para sdsAlterar

-Params defina o DataType para ftFloat para os parâmetros Área e População e, para os outros defina como ftString.

 

Agora é necessário criar a outra ação alterar no WebModule. Clique duas vezes no WebModule e no ActionList, clique no botão Add New. Na propriedade PathInfo coloque /alterarGravar. No evento onAction dessa ação coloque o seguinte código:

 

Listagem 3. Código da ação /alterarGravar

sdsAlterar.Params.ParamValues['Nome']:=

  Request.ContentFields.Values['nome'];

sdsAlterar.Params.ParamValues['Capital']:=

  Request.ContentFields.Values['capital'];

sdsAlterar.Params.ParamValues['Continente']:=

  Request.ContentFields.Values['continente'];

sdsAlterar.Params.ParamValues['Area']:=

  StrToFloat(Request.ContentFields.Values['area']);

sdsAlterar.Params.ParamValues['Populacao']:=

  StrToFloat(Request.ContentFields.Values['populacao']);

sdsAlterar.ExecSQL();

Response.Content:=pgpLista.Content;

 

Esse código busca as informações dos campos da página (Request.ContentFields) e passa para os parâmetros da SQL. Com o ExecSQL a instrução é executada no banco de dados e depois respondemos a página que listas os Países. No próximo artigo veremos como excluir um registro.

Até breve!

 

 

Figura 2. Tela de alteração em funcionamento





    1 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Alex Gonçalves
Gostei muito da matéria aqui usamos intraweb e webbroker apesar do delphi ser pirata www.locatelli.com.br


em 21/7/2006 13:33 - Responder

 



Autor
Fabricio Desbessel

Fabrício Desbessel (fabricio@fabricio.pro.br) é professor de Linguagem de Programação do Curso Técnico em Informática do Colégio Frederico Jorge Logemann de Horizontina/RS e da FAHOR Faculdade Horizontina. Delphiano de coração está sempre disposto a provar que com o Delphi sempre teremos a melhor so...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   1
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da ClubeDelphi ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03