Artigo

Sistema ASP 3.0 utilizando 3 camadas – Parte 1

 

         O meu objetivo é mostrar como é fácil, seguro e rápido utilizar sistemas ASP 3.0 utilizando 3 camadas. Além das camadas ficarem desconectadas, caso houver mudanças em algumas das camadas, fica mais fácil altera-las mantendo assim um padrão específico de desenvolvimento de software. Em passos anteriores mostrei como criar as camadas para conectar no banco de dados, criptografia, module e muito mais. Caso queira acompanhar desde o início, acesse os sites indicados abaixo:

 

www.aspneti.com

www.juliobattisti.com.br

 

 

Informo também que todos os exemplos são explicados passo a passo e para melhor visualização, é mostrado uma figura de ilustração real do assunto falado. Os códigos foram testados e comprovados, favor tente seguir passo a passo. Esta primeira parte crio uma tabela de fornecedores bem comum e com dados reais, crio uma stored procedure para inserir os dados no banco de dados e o restante é mostrado no decorrer.

 

 

Requisitos:

- Ter visto os passos anteriores;

- Possuir um conhecimento VB 6.0 e ASP 3.0;

- Possuir conhecimento utilizando banco de dados;

 

Utilização e ferramentas:

- Microsoft Visual Studio InterDev 6.0;

- Microsoft Visual Basic 6.0

- Banco de dados SQL SERVER;

 

O primeiro de tudo é a criação do banco de dados junto à aplicação. Como informado anteriormente criei uma tabela de fornecedores junto ao banco de dados. (Referência Parte 1.1)

 

Referência: Parte 1.1

 

O nome da tabela do banco de dados é: CPETB042_FORNECEDOR. Note que os campos são formados por um padrão de nomenclatura e são comuns, ou seja, sem nenhum segredo.

 

         O próximo passo é criar uma procedure genérica onde possa fazer update ou insert utilizando o mesmo arquivo. Já que para um fornecedor, o CNPJ nunca deve ser o mesmo, tive a idéia de verificar se o CNPJ já existe, caso não exista o mesmo faz um insert na tabela, caso exista automaticamente a procedure entenderá que deve ser feito um UPDATE nos campos informados. Essa idéia economiza um pouco de tempo e também anula o fato de utilizar outra apenas para fazer update. (Referência Parte 1.2)

 

 

 

 

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go

 

 

CREATE PROCEDURE [dbo].[CPESP097_INSERIR_FORNECEDOR]

 

      @FOR_NOME               nvarchar(100),

      @FOR_CNPJ               nvarchar(28),

      @FOR_OPTANTE_SIMPLES    char(1),

      @FOR_IE                 nvarchar(100),

      @FOR_TELEFONE           nvarchar(20),

      @FOR_TELEFONE1          nvarchar(20),

      @FOR_FAX                nvarchar(20),

      @FOR_CONTATO            nvarchar(100),

      @FOR_ENDERECO           text,

      @FOR_BAIRRO       nvarchar(100),

      @FOR_CIDADE             nvarchar(100),

      @FOR_ESTADO       char(2),

      @FOR_CEP                numeric,

      @FOR_BANCO              nvarchar(100),

      @FOR_AGENCIA            nvarchar(20),

      @FOR_CONTA              nvarchar(70),

      @FOR_EMAIL              nvarchar(200)

 

AS

 

      DECLARE @FOR_NU_SEQUENCIAL   AS INT

 

/************************************************************************************

  INICIANDO TRANSACAO

*************************************************************************************/

      BEGIN TRANSACTION

            SET NOCOUNT ON

 

      -- BUSCA PRIMEIRO ANTES DE INSERIR OU ATUALIZAR

      SELECT

            @FOR_NU_SEQUENCIAL = FOR_NU_SEQUENCIAL

      FROM 

            CPETB042_FORNECEDOR

      WHERE

             FOR_CNPJ = @FOR_CNPJ

 

      IF (@@rowcount = 0)

      BEGIN      

 

            INSERT INTO CPETB042_FORNECEDOR (

                  --FOR_NU_SEQUENCIAL,

                  FOR_NOME,

                  FOR_CNPJ,

                  FOR_OPTANTE_SIMPLES,

                  FOR_IE,

                  FOR_TELEFONE,

                  FOR_TELEFONE1,

                  FOR_FAX,

                  FOR_CONTATO,

                  FOR_ENDERECO,

                  FOR_BAIRRO,

                  FOR_CIDADE,

                  FOR_ESTADO,

                  FOR_CEP,

                  FOR_BANCO,

                  FOR_AGENCIA,

                  FOR_CONTA,

                  FOR_EMAIL

            )

            VALUES

            (

                  --@FOR_NU_SEQUENCIAL,

                  @FOR_NOME,

                  @FOR_CNPJ,

                  @FOR_OPTANTE_SIMPLES,

                  @FOR_IE,

                  @FOR_TELEFONE,

                  @FOR_TELEFONE1,

                  @FOR_FAX,

                  @FOR_CONTATO,

                  @FOR_ENDERECO,

                  @FOR_BAIRRO,

                  @FOR_CIDADE,

                  @FOR_ESTADO,

                  @FOR_CEP,

                  @FOR_BANCO,

                  @FOR_AGENCIA,

                  @FOR_CONTA,

                  @FOR_EMAIL

            )

      END

     

      --- ATUALIZAR TABELA

      ELSE

     

 

      BEGIN

 

            UPDATE CPETB042_FORNECEDOR SET

                  FOR_NOME                = @FOR_NOME,

                  FOR_CNPJ                = @FOR_CNPJ,

                  FOR_OPTANTE_SIMPLES     = @FOR_OPTANTE_SIMPLES,

                  FOR_IE                       = @FOR_IE,

                  FOR_TELEFONE            = @FOR_TELEFONE,

                  FOR_TELEFONE1           = @FOR_TELEFONE1,

                  FOR_FAX                 = @FOR_FAX,

                  FOR_CONTATO       = @FOR_CONTATO,

                  FOR_ENDERECO            = @FOR_ENDERECO,

                  FOR_BAIRRO              = @FOR_BAIRRO,

                  FOR_CIDADE              = @FOR_CIDADE,

                  FOR_ESTADO              = @FOR_ESTADO,

                  FOR_CEP                 = @FOR_CEP,

                  FOR_BANCO               = @FOR_BANCO,

                  FOR_AGENCIA             = @FOR_AGENCIA,

                  FOR_CONTA               = @FOR_CONTA,

                  FOR_EMAIL               = @FOR_EMAIL

            WHERE

                  FOR_NU_SEQUENCIAL       = @FOR_NU_SEQUENCIAL

 

      END

 

 

 

COMMIT TRANSACTION

 

Referência: Parte 1.2

 

Explicação:

 

É simples e fácil a criação e utilização da procedure. No começo espero parâmetros necessários para o insert ou update, logo após inicio a transação com o comando BEGIN TRANSACTION e antes de inserir faço obrigatoriamente um select na tabela passando o número do CNPJ do fornecedor. (Referência Parte 1.3).

 

 

BEGIN TRANSACTION

            SET NOCOUNT ON

 

      -- BUSCA PRIMEIRO ANTES DE INSERIR OU ATUALIZAR

      SELECT

            @FOR_NU_SEQUENCIAL = FOR_NU_SEQUENCIAL

      FROM 

            CPETB042_FORNECEDOR

      WHERE

             FOR_CNPJ = @FOR_CNPJ

 

Referência: Parte 1.3

 

 

Caso haja algum valor retornado para a variável @FOR_NU_SEQUENCIAL, é feito um IF mais abaixo para verificar se o @@rowcount é igual a zero (0). Sendo o mesmo faz insert, senão faz update.

 

         Passando para a parte interessante, criei um projeto do tipo ACTIVEX DLL (caso de dúvidas na criação, verifique os passos anteriores indicado no começo), adicionei o módulo criado anteriormente ao projeto e por final criei uma classe chamada clsFornecedor responsável pelas transações com de fornecedor. O nome do método responsável para inserir é: InserirFornecedor cujo recebe alguns parâmetros necessários. (Referência Parte 1.4)

 

 

 

 

 

 

Public Function InserirFornecedor(ByVal FOR_NOME As String, _

                                  ByVal FOR_CNPJ As String, _

                                  ByVal FOR_OPTANTE_SIMPLES As String, _

                                  ByVal FOR_IE As String, _

                                  ByVal FOR_TELEFONE As String, _

                                  ByVal FOR_TELEFONE1 As String, _

                                  ByVal FOR_FAX As String, _

                                  ByVal FOR_CONTATO As String, _

                                  ByVal FOR_ENDERECO As String, _

                                  ByVal FOR_BAIRRO As String, _

                                  ByVal FOR_CIDADE As String, _

                                  ByVal FOR_ESTADO As String, _

                                  ByVal FOR_CEP As String, _

                                  ByVal FOR_BANCO As String, _

                                  ByVal FOR_AGENCIA As String, _

                                  ByVal FOR_CONTA As String, _

                                  ByVal FOR_EMAIL As String) As Boolean

 

Static sSql As String

Static bRetorno As Boolean

Static bConexao As Boolean

 

On Error GoTo error

    ‘ abre a conexao com o banco de dados

    bConexao = AbreConexao("open")

 

    If bConexao Then

        ‘executa a stored procedure criada anteriormente passando os parâmetros

        ‘necessários

        sSql = " CPESP097_INSERIR_FORNECEDOR '" & FOR_NOME & "', '" & FOR_CNPJ & "', " & _

                                             " '" & FOR_OPTANTE_SIMPLES & " ', '" & FOR_IE & "', " & _

                                             " '" & FOR_TELEFONE & "', '" & FOR_TELEFONE1 & "', " & _

                                             " '" & FOR_FAX & "', '" & FOR_CONTATO & "', " & _

                                             " '" & FOR_ENDERECO & "', '" & FOR_BAIRRO & "', " & _

                                             " '" & FOR_CIDADE & "', '" & FOR_ESTADO & "', " & _

                                             " '" & FOR_CEP & "', '" & FOR_BANCO & "', " & _

                                             " '" & FOR_AGENCIA & "', '" & FOR_CONTA & "', " & _

                                             " '" & FOR_EMAIL & "'"

        ‘ executa o comando utilizando o método da model passando a string SQL                                           

        bRetorno = ExecutaSQL(sSql)

        

    End If

 

error:

   ‘ caso haja erro, o mesmo gera o log

   If Err.Number <> 0 Then

        GerarLog "InserirFornecedor", DescricaoErro(1)

   End If

  

   ‘por fim é retornado ao objeto ou página que chamou um valor do tipo boolean    

   InserirFornecedor = bRetorno

 

   ‘fechando a conexão do banco de dados.

   If bConexao Then

       AbreConexao "close"

   End If

 

End Function

 

Referência: Parte 1.4

 

         O método é simples depois que entende a utilização do módulo criado em passos anteriores. Essa é a vantagem de se criar um módulo genérico com funções ou métodos, várias classes podem utilizá-lo sem qualquer tipo de problema.

 

 

Explicação:

 

         Recebo as variáveis com seus tipos respectivos, mais abaixo abro a conexão com o banco de dados, verifico se a conexão foi realmente aberta, atribuo os valores para a variável sSQL responsável para passar os valores a serem executados. Depois da atribuição, chamo a função ou método, como preferir chamada ExecutaSQL passando a sSQL. Essa função é responsável em fazer todo o trâmite utilizando a stored procedure indicada. Por fim retorno o valor ao objeto ou página que o chamou. (Referência Parte 1.5)

 

isdf

Referência: Parte 1.5

 

Lembre-se que o componente deve estar registrado no COM PLUS.

 

Utilizando página ASP 3.0

  

         Esta parte de utilizando da camada de apresentação é bem simples e prático. No momento não se preocupe com layout ou estilo da tela, estou focando no funcionamento utilizando camadas e não no layout. (Referência Parte 1.6)

 

 

      

Referência: Parte 1.6

 

 

         A figura (referência Parte 1.6) mostra como ficou a página ASP 3.0 responsável por cadastrar o fornecedor no banco de dados. O código HTML é simples e fácil, porém com alguns códigos diferentes. (Referência Parte 1.7)

 

 

 

<form action="frmManterFornecedor.asp" method="post" name="form">

                  

                            <!-- hidden -->

                            <input type="hidden" name="hdNuSequencial" value="<%=hdNuSequencial%>">

                           

                   <table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">

                            <!--#include file="../includes/barra_titulo.asp"-->                           

                            <tr align="center">

                                      <td bgcolor="white" id="td_Left"></td>

                                      <td bgcolor="white" valign="top" width="780px" id="td_Center">                                 

                                                        <table border="1" cellpadding="0" class="formulario" WIDTH="90%" >

                                                                  <tr>

                                                                           <td height="30px" style="background-color:white"></td>

                                                                  </tr>

                                                                  <tr>

                                                                           <th colspan="4">Manter Fornecedor</th>

                                                                  </tr>

                                                                  <tr>

                                                                           <TH width="18">01</TH>

                                                                           <td >

                                                                                     <b>CNPJ do Fornecedor: <font color="red">*</font></b><br>

                                                                                     <input type='text' id="txtCNPJ" name="txtCNPJ" value="<%=txtCNPJ%>" maxlength="14" size='16'  style="BACKGROUND-COLOR: #ffff99" >

                                                                           </td>                                                                  

                                                                           <td colspan='2'>

                                                                                     <b>Nome do Beneficiario:<font color="red">*</font></b><br>

                                                                                     <input type='text' id="txtNome" name="txtNome" value="<%=txtNome%>" maxlength="50" size='60'  style="BACKGROUND-COLOR: #ffff99" >

                                                                           </td>

                                                                  </tr>

                                                                  <tr>

                                                                           <TH width="18">02</TH>

                                                                           <td>

                                                                                     <b>Optante Simples:</b><br>

                                                                                     <input type="radio" checked style="border:0" name="rdOptante" disabled value="S">Sim

                                                                                     <input type="radio" style="border:0" name="rdOptante" disabled value="N">Não

                                                                           </td>

                                                                           <td colspan=2>

                                                                                     <b>Inscrição Estadual:</b><br>

                                                                                     <input type='text' name='txtInscricaoEstadual' value="<%=txtInscricaoEstadual%>" maxlength="13" size="15" disabled>

                                                                           </td>

                                                                  </tr>                                                                                                                                                                                                      

                                                                  <tr>

                                                                           <TH width="18">04</TH>

                                                                           <td colspan="2">

                                                                                    <b>Endereço:</b><br>

                                                                                     <input type='text' id="txtEndereco" name="txtEndereco" value="<%=txtEndereco%>" maxlength="50" size='60' disabled>

                                                                           </td>                                                                  

                                                                           <td >

                                                                                    <b>Bairro:</b><br>

                                                                                     <input type='text' id="txtBairro" name="txtBairro" value="<%=txtBairro%>" maxlength="50" size='30' disabled>

                                                                           </td>

                                                                  </tr>                                                                                                                                             

                                                                  <tr>

                                                                           <TH width="18">05</TH>

                                                                           <td >

                                                                                    <b>Cidade:</b><br>

                                                                                     <input type='text' id="txtCidade" name="txtCidade" value="<%=txtCidade%>" maxlength="50" size='20' disabled>

                                                                           </td>                                                                  

                                                                           <td >

                                                                                    <b>Estado:</b><br>

                                                                                     <select name="cmbEstado" disabled>

                                                                                              <option value=""><< Selecione >></option>

                                                                                              <option value="AC" <%if cmbEstado = "AC" then Response.Write "selected"%>>AC</option>

                                                                                              <option value="AL" <%if cmbEstado = "AL" then Response.Write "selected"%>>AL</option>

                                                                                              <option value="AM" <%if cmbEstado = "AM" then Response.Write "selected"%>>AM</option>

                                                                                              <option value="AP" <%if cmbEstado = "AP" then Response.Write "selected"%>>AP</option>

                                                                                              <option value="BA" <%if cmbEstado = "BA" then Response.Write "selected"%>>BA</option>

                                                                                              <option value="CE" <%if cmbEstado = "CE" then Response.Write "selected"%>>CE</option>

                                                                                              <option value="DF" <%if cmbEstado = "DF" then Response.Write "selected"%>>DF</option>

                                                                                              <option value="ES" <%if cmbEstado = "ES" then Response.Write "selected"%>>ES</option>

                                                                                              <option value="GO" <%if cmbEstado = "GO" then Response.Write "selected"%>>GO</option>

                                                                                              <option value="MA" <%if cmbEstado = "MA" then Response.Write "selected"%>>MA</option>

                                                                                              <option value="MG" <%if cmbEstado = "MG" then Response.Write "selected"%>>MG</option>

                                                                                              <option value="MS" <%if cmbEstado = "MS" then Response.Write "selected"%>>MS</option>

                                                                                              <option value="MT" <%if cmbEstado = "MT" then Response.Write "selected"%>>MT</option>

                                                                                              <option value="PA" <%if cmbEstado = "PA" then Response.Write "selected"%>>PA</option>

                                                                                              <option value="PB" <%if cmbEstado = "PB" then Response.Write "selected"%>>PB</option>

                                                                                              <option value="PE" <%if cmbEstado = "PE" then Response.Write "selected"%>>PE</option>

                                                                                              <option value="PI" <%if cmbEstado = "PI" then Response.Write "selected"%>>PI</option>

                                                                                              <option value="PR" <%if cmbEstado = "PR" then Response.Write "selected"%>>PR</option>

                                                                                              <option value="RJ" <%if cmbEstado = "RJ" then Response.Write "selected"%>>RJ</option>

                                                                                              <option value="RN" <%if cmbEstado = "RN" then Response.Write "selected"%>>RN</option>

                                                                                              <option value="RO" <%if cmbEstado = "RO" then Response.Write "selected"%>>RO</option>

                                                                                              <option value="RR" <%if cmbEstado = "RR" then Response.Write "selected"%>>RR</option>

                                                                                              <option value="RS" <%if cmbEstado = "RS" then Response.Write "selected"%>>RS</option>

                                                                                              <option value="SC" <%if cmbEstado = "SC" then Response.Write "selected"%>>SC</option>

                                                                                              <option value="SE" <%if cmbEstado = "SE" then Response.Write "selected"%>>SE</option>

                                                                                              <option value="SP" <%if cmbEstado = "SP" then Response.Write "selected"%>>SP</option>

                                                                                              <option value="TO" <%if cmbEstado = "TO" then Response.Write "selected"%>>TO</option>

                                                                                     </select>

                                                                           </td>

                                                                           <td >

                                                                                     <b>CEP:</b><br>

                                                                                     <input type='text' id="txtCEP" name="txtCEP" value="<%=txtCEP%>" maxlength="8" size='10' disabled>

                                                                           </td>                                                                  

                                                                  </tr>                                                                                                                                                                                                               

                                                                  <tr>

                                                                           <TH width="18">06</TH>

                                                                           <td >

                                                                                     <b>Telefone 1:</b><br>

                                                                                     <input type='text' id="txtTelefone1" name="txtTelefone1" value="<%=txtTelefone1%>" maxlength="10" size='12' disabled>

                                                                           </td>                                                                  

                                                                           <td >

                                                                                     <b>Telefone 2:</b><br>

                                                                                     <input type='text' id="txtTelefone2" name="txtTelefone2" value="<%=txtTelefone2%>" maxlength="10" size='12' disabled>

                                                                           </td>

                                                                           <td >

                                                                                     <b>Fax:</b><br>

                                                                                     <input type='text' id="txtFax" name="txtFax" value="<%=txtFax%>" maxlength="10" size='12' disabled>

                                                                           </td>                                                                  

                                                                  </tr>                                                                                                                                                                                                                                                                                 

                                                                  <tr>

                                                                           <TH width="18">07</TH>

                                                                           <td>

                                                                                    <b>Contato:</b><br>

                                                                                     <input type='text' id="txtContato" name="txtContato" value="<%=txtContato%>" maxlength='50' size='20' disabled>

                                                                           </td>                                                                                                                                             

                                                                           <td colspan=2>

                                                                                    <b>Email:</b><br>

                                                                                     <input type='text' id="txtEmail" name="txtEmail" value="<%=txtEmail%>" maxlength='50' size='30' disabled>

                                                                           </td>                                                                  

                                                                  </tr>          

                                                                  <tr>

                                                                           <th colspan="4">Dados do Banco</th>                                                                   

                                                                  </tr>                                                         

                                                                  <tr>

                                                                           <TH width="18">09</TH>

                                                                           <td >

                                                                                     <b>N° Banco:</b><br>

                                                                                     <input type='text' id="txtNuBanco" name="txtNuBanco" value="<%=txtNuBanco%>" maxlength="3" size='15' disabled>

                                                                           </td>

                                                                           <td >

                                                                                     <b>N° Agencia:</b><br>

                                                                                     <input type='text' id="txtNuAgencia" name="txtNuAgencia" value="<%=txtNuAgencia%>" maxlength="5" size='10' disabled>

                                                                           </td>                                                                  

                                                                           <td>

                                                                                     <b>N° Conta:</b><br>

                                                                                     <input type='text' id="txtNuConta" name="txtNuConta" value="<%=txtNuConta%>" maxlength="10" size='20' disabled>

                                                                           </td>

                                                                  </tr>                                                                                                                                                       

                                                                 

                                                                  <tr>

                                                                           <th align="middle" colspan='4'>

                                                                                        <input type="button" onClick="pesquisar();"    title="Clique aqui para Pesquisar"         name="btnPesquisar"  value="Pesquisar">

                                                                                        <input type="button" onClick="salvar();"             title="Clique aqui para Salvar"              name="btnSalvar"  value="Salvar" disabled>

                                                                           &nbsp; <input type="button" onClick="novo();"               title="Clique aqui para Cadastrar"         name="btnNovo"    value="Novo">

                                                                           &nbsp; <input type="button" onclick="limpaCampos();"  title="Clique aqui para Limpar"               name="btnLimpar"  value="Limpar">

                                                                           </th>

                                                                  </tr>

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

                                                        </table>

</form>

 

Referência: Parte 1.7

 

Explicação:

 

         Todo esse form é apenas HTML para a montagem de acordo com a referência (Parte 1.6) comentada anteriormente. A ação do form está sendo enviada para o mesmo formulário. (Referência Parte 1.8)

 

 

action="frmManterFornecedor.asp" method=”post”

 

Referência: Parte 1.8

Dessa forma, todos os dados submetidos são enviados via POST para o mesmo formulário. Para pegar todos os valores escolhidos e digitados, basta utilizar logo no começo a tag “<%%>”. Pelo fato de desenvolver algumas funcionalidades a mais como excluir, pesquisar e inserir dentro de um mesmo formulário, utilizei uma variável de ação chamada “sAcao”. De acordo com a ação feita, meu form irá consultar inserir ou excluir registros do banco de dados.

 

Neste primeiro passo, mostrei a ação incluir, criei o objeto para comunicação com o componente utilizando três camadas e enviando os parâmetros. Lembre-se que para usar o componente VB 6.0, deve-se gerar uma DLL no menu FILE / MAKE PROGRAMA.DLL e registra-la no COM PLUS da máquina ou servidor; para mais detalhes, em passos anteriores expliquei passo a passo o modo correto de fazer isso. (Referência Parte 1.9)

 

 

<%

'############### declaracao

 

dim sAcao

dim iCont

 

dim cmbEstado

dim txtCNPJ

dim txtNome

dim txtInscricaoEstadual

dim txtEndereco

dim txtBairro

dim txtCidade

dim txtCEP

dim txtTelefone1

dim txtTelefone2

dim txtFax

dim txtEmail

dim txtNuBanco

dim txtNuAgencia

dim txtNuConta

dim txtContato

dim rdOptante

dim hdNuSequencial

 

 

dim oFornecedor

dim vFornecedor

dim bFornecedor

 

'################ pegando valores

txtNuConta                                = Request("txtNuConta")

cmbEstado                                 = Request("cmbEstado")

txtCNPJ                                              = Request("txtCNPJ")

txtNome                                             = Request("txtNome")

txtInscricaoEstadual  = Request("txtInscricaoEstadual")

txtEndereco                               = Request("txtEndereco")

txtBairro                                   = Request("txtBairro")

txtCidade                                   = Request("txtCidade")

txtCEP                                      = Request("txtCEP")

txtTelefone1                     = Request("txtTelefone1")

txtTelefone2                     = Request("txtTelefone2")

txtFax                                       = Request("txtFax")

txtEmail                                    = Request("txtEmail")

txtNuBanco                                = Request("txtNuBanco")

txtNuAgencia                    = Request("txtNuAgencia")

txtNuConta                                = Request("txtNuConta")

txtContato                                 = Request("txtContato")

rdOptante                                  = Request("rdOptante")

txtContato                                 = Request("txtContato")

hdNuSequencial                          = Request("hdNuSequencial")

 

sAcao                                       = Request("sAcao")

 

 

'############### criando instancia com objeto

set oFornecedor = Server.CreateObject("CPETabelas.clsFornecedor")

 

if sAcao = "Salvar" then

        

         txtCEP = Replace(txtCEP,".","")

         txtCEP = Replace(txtCEP,"-","")

        

         txtCNPJ = Replace(txtCNPJ,".","")

         txtCNPJ = Replace(txtCNPJ,"-","")

         txtCNPJ = Replace(txtCNPJ,"/","")

        

         bFornecedor = oFornecedor.InserirFornecedor(txtNome, txtCNPJ, rdOptante, txtInscricaoEstadual, txtTelefone1, txtTelefone2, txtFax, txtContato, txtEndereco, txtBairro, txtCidade, cmbEstado, txtCEP, txtNuBanco, txtNuAgencia, txtNuConta, txtEmail)

        

         if bFornecedor = false then

                   %>

                            <script>

                                      alert('Erro ao inserir fornecedor !');

                            </script>

                   <%

         else

                   Response.Redirect "frmManterFornecedor.asp?sAcao=Pesquisar"

         end if

                  

end if

 

%>

 

Referência: Parte 1.9

 

Explicação:

 

         As primeiras linhas da parte ASP são apenas declarações de variáveis usadas, geralmente é bom colocar os mesmos nomes que estão no atributo name do seu formulário HTML.  Utilizo apenas “dim nomedavariavel”. Depois de declarada todas as variáveis, tenho que pegar e atribuir o valor submetido. (Referência Parte 1.10).

 

 

 

 

txtNuConta    = Request("txtNuConta")

 

Referência: Parte 1.10

 

         Só o Request(“name do objeto HTML”) já pega o valor que foi digitado ou selecionado dependendo do objeto. Após pegar todos os request da tela preciso apenas instanciar o método VB 6.0 criado e por final chamar o método responsável para inserção de parâmetros. (Referência Parte 1.11)

 

 

 

'############################# criando instancia com objeto

set oFornecedor = Server.CreateObject("CPETabelas.clsFornecedor")

 

bFornecedor = oFornecedor.InserirFornecedor(txtNome, txtCNPJ, rdOptante, txtInscricaoEstadual, txtTelefone1, txtTelefone2, txtFax, txtContato, txtEndereco, txtBairro, txtCidade, cmbEstado, txtCEP, txtNuBanco, txtNuAgencia, txtNuConta, txtEmail)

 

Referência: Parte 1.11

 

 

O set oFornecedor = Server.CreateObject("CPETabelas.clsFornecedor") cria a instância diretamente com o componente informado registrado no COM PLUS. Os parâmetros são:

 

CPETabelas

O nome do componente

clsFornecedor

A classe criada dentro do componente

Referência: Parte 1.12

 

 

         Depois de instanciado, basta chamar o método que insere os dados no banco de dados. (Referência Parte 1.13)

 

 

bFornecedor = oFornecedor.InserirFornecedor (variáveis, variáveis, variáveis)

 

Referência: Parte 1.13

 

         É o nome do objeto, ponto (.) o nome do método. Utilizei o Visual InterDev 6.0 onde já mostra todos os métodos ou funções necessárias depois de digitado (ponto). No meu caso de muitos parâmetros, tive que passar vários para o objeto. Para mais detalhes verifique a Referência Parte 1.14.

 

 

bFornecedor = oFornecedor.InserirFornecedor(txtNome, txtCNPJ, rdOptante, txtInscricaoEstadual, txtTelefone1, txtTelefone2, txtFax, txtContato, txtEndereco, txtBairro, txtCidade, cmbEstado, txtCEP, txtNuBanco, txtNuAgencia, txtNuConta, txtEmail)

        

         if bFornecedor = false then

                   %>

                            <script>

                                      alert('Erro ao inserir fornecedor !');

                            </script>

                   <%

         else

                   Response.Redirect "frmManterFornecedor.asp?sAcao=Pesquisar"

         end if

 

Referência: Parte 1.14

 

         No ASP 3.0, necessariamente precisa-se passar todos os parâmetros na ordem que o componente o recebe. Caso a ordem seja diferente, poderá ocasionar algum tipo de erro. Qualquer tipo de erro ocorrendo dentro do componente, a tela mostrará uma mensagem “Erro ao inserir fornecedor” para o usuário final, senão o será redirecionado para a mesma tela passando a ação igual a “pesquisar”.

 

         Bom, esse foi um exemplo médio, prático e rápido de como fazer um componente VB 6.0, coloca-lo no COM PLUS, criar uma página ASP 3.0, chamar o componente via página web e por final passar os valores esperados.

 

  

Espero ter ajudado de alguma maneira, fique de olho nos passos seguintes. Qualquer dúvida, favor entrar em contato pelo e-mail mauricio@aspneti.com.

 

Livros publicados:

 

 

 

 

Mauricio Junior

www.aspneti.com

www.mauriciojunior.org

 

  • Mauricio Junior

    Mauricio Junior