Aplicações Web com Webbroker – Parte V
Veja nesse artigo de Fabricio Desbessel, mais um capítulo sobre aplicações Web Broker no Delphi.
Nesse artigo abordaremos a parte de inclusão de um registro em uma aplicação Web, utilizando WebBroker.
Para começar precisamos criar uma página que contenha um formulário HTML com os campos para inserir os dados e um botão para disparar o POST. Para simplificar a criação, abra a página alterar.htm criada na parte III dessa série de artigo e salve como inserir.htm. Altere a propriedade Value (no Dreamweaver: Init Val) de todos os campos deixando-a em branco. Modifique o Value do botão para Inserir Registro.
Altere também o Action do formulário colocando para Country.exe/inserirGravar. Após essas alterações o formulário deverá ter a aparência da Figura 1.
Figura 1. Layout da página de inserção
Lembrando que para fazer essas modificações na página HTML você poderá utilizar seu editor preferido. Todos os TextFields devem estar com o Name (Id) igual aos nomes dos campos. Ex.:

Se você utilizou a página de alteração para iniciar essa página é necessário ir até o código HTML e retirar o código readonly que está no campo “nome”, pois agora será necessário digitar o nome, o que não era necessário no momento de alteração.
Voltando ao Delphi, vamos criar a ação inserir no WebModule. Essa ação será responsável por responder a página de inclusão ao browser do cliente. Então precisaremos incluir mais um componente PageProducer, da paleta Internet a nossa aplicação. Mude sua propriedade Name para pgpInserir e na propriedade HTMLFile encontre o arquivo inserir.htm salvo anteriormente.
Clique duas vezes no WebModule e no ActionList, clique no botão Add New. Na propriedade PathInfo coloque /inserir. No evento onAction dessa ação coloque o seguinte código:
Listagem 1. Código da ação /inserir
Response.Content:=pgpInserir.Content;
Para executar a inserção vamos criar uma instrução SQL de Insert 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 :
Insert Into COUNTRY (NAME, CAPITAL, CONTINENT, AREA, POPULATION)
Values (:Nome, :Capital, :Continente, :Area, :Populacao)
-Name para sdsInserir
-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, aquela que realmente vai pegar os dados do browser do cliente e inserir no banco de dados. Clique duas vezes no WebModule e no ActionList, clique no botão Add New. Na propriedade PathInfo coloque /inserirGravar. No evento onAction dessa ação coloque o seguinte código:
Listagem 2. Código da ação /inserirGravar
sdsInserir.Params.ParamValues['Nome']:=
Request.ContentFields.Values['nome'];
sdsInserir.Params.ParamValues['Capital']:=
Request.ContentFields.Values['capital'];
sdsInserir.Params.ParamValues['Continente']:=
Request.ContentFields.Values['continente'];
sdsInserir.Params.ParamValues['Area']:=
StrToFloat(Request.ContentFields.Values['area']);
sdsInserir.Params.ParamValues['Populacao']:=
StrToFloat(Request.ContentFields.Values['populacao']);
sdsInserir.ExecSQL();
Response.Content:=pgpLista.Content;
É importante salientar que em aplicações Web é recomendável a utilização de comandos SQL para manipulação direta dos dados ao invés de trazer todos os dados em um DataSet, carregando a memória, para, por exemplo incluir uma informação.
Na Figura 2 temos o WebModule e o ActionList da aplicação.
Figura 2. WebModule e ActionList


em 3/10/2006 13:29 - Responder


em 28/10/2006 22:25 - Responder
Space do autor



0
0
