Login:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

ASP

Feed da seção ASP

Newsletter de ASP


Quinta-feira, 24/08/2006 - 12:28 - Por Antonio Gemballa
Seções relacionadas:

Aplicação ASP 3 Camadas (ASP, COM+ e SQL Server) - Parte 01

Olá pessoal! Após um tempo sem escrever para o iMasters, é com grande satisfação que disponibilizo uma nova matéria. Dessa vez, vamos falar de algo atualmente pouco usado (após o lançamento do .NET), porém de grande utilidade, o COM+.

Usando DLL como camada de regra de negócios, é possível garantir melhor a integridade dos dados, e do código fonte, tornando sua aplicação mais segura.

O COM+ também oferece maior velocidade às transações, principalmente as que usam banco de dados.

Nesta matéria, vou exemplificar o uso do ASP/COM+/Sql Server para inserir um usuário no sistema. As DLLs do COM+ serão feitas no VB 6.0.

A princípio, vamos começar criando o banco com uma Tabela TB_USUARIO com os seguintes campos:

Agora vamos criar a procedure que irá inserir os dados no banco:

CREATE PROCEDURE INSERE_USUARIO
                @NOME                               VARCHAR(50),
                @EMAIL                               VARCHAR(50),
                @MSG                                  VARCHAR(254) OUTPUT
AS
                IF EXISTS(SELECT EMAIL FROM TB_USUARIO WHERE EMAIL = @EMAIL)
                               BEGIN
                                               SET @MSG = 'ER Usuário ja existe!!'
                               END
                ELSE
                               BEGIN
                                               INSERT INTO TB_USUARIO(NOME, EMAIL)VALUES(@NOME,@EMAIL)
                                               SET @MSG = 'OK Usuário inserido com sucesso!'
                               END
GO

Esta procedure verifica se já existe o e-mail cadastrado. Se não existir, ele insere os dados passados como parâmetro.

Reparem que foi criada uma variável @MSG que irá retornar para a aplicação uma mensagem de erro ou de sucesso.

Vamos abrir o VB e adicionar um novo projeto de ActiveX DLL:

Nosso projeto irá se chamar Usuário.vbp. Reparem que, na aba de projetos, ele criou um projeto de uma classe:

Vamos chamar essa classe de Executa e criar um módulo chamado ModuloInsere.

Dentro do ModuloInsere vamos colocar o seguinte código:

Option Explicit
   
    Public objAcessoDB As Object
    Public objConexao As Object
    Public objCmd As Object
    Public objFuncaoRs As Object
    Public strConexao As String
    Public cmd As Object
                                     '
Public Function AbrirConnADO() As ADODB.Connection
   
    'Variável de Conexao
    Dim vConnectionString As String
   
    'Variável de Login                                            '
    Dim vLogin As String
    vLogin = ""
   
    'Variável de Senha                                              '
    Dim vSenha As String
    vSenha = ""
   
    Dim Conexao As Object 'ADODB.Connection
     
    ' Instancia o Objeto
    Set Conexao = CreateObject("ADODB.Connection")
   
    strConexao = "Driver={SQL Server};Server=LOCALHOST;Database=DATABASE;Uid=;Pwd=;"

    ' Define tratamento de processo                                 '
    Conexao.CursorLocation = adUseClient
   
    ' Define o timeout
    Conexao.ConnectionTimeout = 150
   
    ' Abre Conexão
    Conexao.Open strConexao, vLogin, vSenha

    ' Retorna Objeto                                                '
    Set AbrirConnADO = Conexao
   
    ' Destrói Instancia da Conexão                                     '
    Set Conexao = Nothing
   
End Function

Percebam que, no código acima, definimos as variáveis públicas da Classe e criamos a função AbrirConnADO de acesso ao banco de dados.

Na classe executa, vamos inserir o seguinte código:

Public Function IncluirUsuario(ByVal pNome As String, ByVal pEmail As String) As String

   
    'Tratamento de Parametros
    Dim sRetorno As String
   
    pNome = UCase(pNome)
    pEmail = LCase(pEmail)

    'Abre conexão
    Set objConexao = AbrirConnADO()
        
     Set objCmd = CreateObject("ADODB.Command")        
    'Roda procedure
      With Cmd
        .ActiveConnection = objConexao
        .CommandText = "INSERE_USUARIO"
        .CommandType = adCmdStoredProc
        .Parameters.Append .CreateParameter("NOME", adVarChar, adParamInput, 50, pNome)
        .Parameters.Append .CreateParameter("EMAIL", adVarChar, adParamInput, 50, pEmail)
        .Parameters.Append .CreateParameter("pRetorno", adVarChar, adParamOutput, 250, sRetorno)
        .Execute
       
        sRetorno = .Parameters("pRetorno").Value
      End With
    
    'Retorna mensagem
    IncluirUsuario = sRetorno
           
End Function

No código acima nós criamos uma função IncluirUsuario que recebe os parâmetros pNome e pEmail como string.

Abrimos a conexão usando a função AbrirConnADO.

Após isso, usamos o objeto command para passar os parâmetros para a procedure INSERE_USUARIO.

Retornamos para a variável sRetorno, a mensagem de retorno da Procedure e retribuímos essa mensagem para a função IncluirUsuario.

Vamos salvar o projeto e criar a dll do mesmo:

Agora que a dll está criada, vamos registrá-la dentro do COM+.

Entre em Administrative Tools.

Entre em Component Services.

Vamos criar um novo pacote de aplicações.

Vamos criar uma aplicação vazia, conforme destacado em vermelho na imagem.

Vamos chamar nossa aplicação de USUARIO. Percebam que a nova aplicação foi criada com sucesso!

Vamos adicionar nossa dll dentro da aplicação criada:

Vamos localizar nossa DLL e adicioná-la.

Nosso componente registrado ficará assim:

Agora que já temos a DLL criada e registrada, vamos criar um novo projeto no VB para testarmos a DLL.

Crie um projeto Standard.EXE.

Crie um formulário com um campo para nome do usuário (txtNome), um campo para e-mail (txtEmail) do usuário e um botão salvar (cmdIncluirUsuario).

Dentro do botão salvar, adicione o seguinte código:

Private Sub cmdIncluirUsuario_Click()
   
    Dim objUsuario As Object
    Dim tipoMsg As String

   ‘Seta o objeto objUsuario como uma instância da Classe Usuário
   Set objUsuario = CreateObject("Usuario.Executa")
   
    Dim Retorno As String
   
    ‘Instancia a classe Usuario
    Retorno = objUsuario.IncluirUsuario(txtNome.Text, txtEmail.Text)
   
    tipoMsg = Mid(Retorno, 1, 2)
   
‘Faz o tratamento de erros  
 If tipoMsg = "ER" Then
        MsgBox (Replace(Retorno, "ER", ""))
    Else
        MsgBox (Replace(Retorno, "OK", ""))
    End If
   
    Set objUsuario = Nothing

End Sub

No código acima nós instânciamos a dll Usuario com o método Executa.

Passamos por parâmetro o valor dos campos txtNome e txtEmail e retornamos para a variável Retorno, a mensagem retornada da procedure, por fim, exibimos a mensagem de retorno.

Na próxima matéria vou exemplificar como se instancia essa classe através do ASP.

- Gostaria de dedicar esta matéria à toda equipe que trabalha e já trabalhou comigo e sempre me ajudam quando preciso.

- A minha namorada pelo incentivo que me dá para sempre continuar escrevendo no iMasters.

- E a toda equipe iMasters pela oportunidade.

Até a próxima!

Todos os artigos de Antonio Gemballa

1 comentários publicados

  • 1. ;)

    Segunda-feira, 23/10/2006, por Veronica Gravino

    Otimo tópico!
    hoje em dia aplicações em 3 camadas são bem mais eficientes e seguras!

    Responder comentário

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

Antonio Gemballa está cursando superior e Administração e Gestão de Negócios com enfasê em TI. Possui certificação Microsoft MCP em SQL SERVER 2005. Desde 2002 trabalha com Tecnologia, já tendo atuado nas áreas de engenharia, marketing, Gestão de TI e GED. Tem experiência em Análise, processos, definição de equipe, prazos, modelos, condições, componentes, até desenvolvimento.


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.