Artigo

Sistema de Login – Parte IV

 

Olá pessoal, estou disposto mostrar a parte do sistema de login utilizando VB 6.0, ASP 3.0, SQL Server e Stored Procedure. As partes anteriores podem ser encontradas nos sites www.aspneti.com e www.juliobattisti.com.br.

 

A parte III, criei uma function na classe global.bas com o nome AbreConexao. Antes mesmo de compilar a aplicação VB 6.0, preciso adicionar uma referência para o aplicativo, resumindo, é uma dll responsável para facilitar acesso ao banco de dados, ou seja, um drive de acesso. É chamada de Microsoft ActiveX Data Objects 2.5 Library.

 

Cliquei no menu Project e em seguida na opção References para adicionar a referência citada anteriormente. Referência (4.1 – Visual Basic 6.0)

 

Referência: 4.1 – Visual Basic 6.0

 

A tela (4.2 – Visual Basic 6.0) possui uma relação de várias dlls disponíveis para serem usadas dentro do aplicativo. Escolhi uma chamada Microsoft ActiveX Data Objects 2.5 Library. Referência (4.2 – Visual Basic 6.0)

 

Referência: 4.2 – Visual Basic 6.0

 

Marquei a dll necessária para acesso ao banco de dados utilizando o Visual Basic 6.0. Procurei digitando a letra “m” e em seguida marquei a mesma desejada. Para finalizar cliquei no botão OK.

 

 

Compilar o Aplicativo

 

Tudo que foi feito até agora, nenhuma hora foi compilado o aplicativo para verificação de erro.  Lembro que o Visual Basic 6.0 não é igual ao novo Visual Studio.NET 2003 ou 2005, isto é, o mesmo só mostra o erro se for compilado. Para compilar e gerar a dll, cliquei no menu File / Make (nome do aplicativo). Dessa forma é gerado a dll.  Referência (4.3 – Visual Basic 6.0)

 

 

 

Referência: 4.3 – Visual Basic 6.0

 

 

O interessante é que se tiver algum tipo de erro dentro do aplicativo por exemplo: sintaxe ou sem fechar algum “end if”, a dll não será gerada.

Antes de mostrar algum erro de sintaxe ou aplicação, o Visual Basic 6.0 pedirá um caminho para gerar ou gravar a dll. Referência (4.4 – Visual Basic 6.0).

 

Referência: 4.4 – Visual Basic 6.0

 

 

Sem erro, a dll será gerada e pronta para ser usada.

Uma dica é, compile sempre o aplicativo para saber se possui algum erro.

 

 

Criar mais functions

 

Bom, agora que já foi mostrado como compilar um aplicativo, irei mostrar e criar outras functions dentro do global.bas. Com apenas a function AbreConexao, não adianta em nada para ser usada em um aplicativo robusto ou simples. Mais quatro functions serão criadas dentro do global.bas e assim utilizarmos uma página ASP para logar utilizando o aplicativo feito com o Visual Basic 6.0 registrado no COM + (COM PLUS).

 

Segue uma tabela com a relação de todas as functions com explicação. (Referência 4.5 – Visual Basic 6.0).

 

 

 

 

Function

Explicação da funcionalidade

ExecutaSQLArray

Essa function serve para executar algum comando SQL que retorne um array de dados. Essa forma de array pode ser entendido como RECORDSET, ou seja, um SELECT.

 

 

ExecutaSQL

Essa function serve para apenas executar um comando SQL, não retornar valor, ou seja, é responsável para executar um: INSERT, UPDATE e DELETE.

 

 

Encryptografar

Essa function serve apenas para receber um parâmetro, criptografar e retornar o valor criptografado. Irei utilizar um componente externo para isso.

 

 

DesenCryptar

Essa function serve apenas para receber um parâmetro criptografado e retornar o valor descriptografado, ou seja, ao contrário da function anterior.

Referência: 4.5 – Visual Basic 6.0

 

 

 

 

 

Dentro do arquivo .bas, no final do método AbreConexao, dei um ENTER e coloquei as functions relacionadas acima:  Cada referência será uma function comentada. (Referência 4.6 – Visual Basic 6.0)

 

 

 

Public Function ExecutaSQLArray(ByVal SQL As String, _

                                Optional ByVal sMetodoOrigem As String = "") As Variant

 

Static vRetorno  As Variant

Static sMetodo   As String

Static bRetorno  As Boolean

 

On Error GoTo error

   

    'Setando Objeto RecordSet

    Set RS = CreateObject("ADODB.RECORDSET")

   

    'Fazendo Open no Objeto SQL

    RS.Open SQL, CONN

      

    'Criando Array

    vRetorno = RS.GetRows

    ExecutaSQLArray = vRetorno

   

    'Fechando RS

    RS.Close

    Set RS = Nothing

  

error:

    If Err.Number <> 0 And Err.Number <> 3021 Then

        'Fechando RS

        RS.Close

        Set RS = Nothing

        'Fechando Conexao

        ExecutaSQLArray = ""

    Else

        If Not IsArray(vRetorno) Then

            ExecutaSQLArray = "0"

        End If

    End If

   

End Function

 

Referência: 4.6 – Visual Basic 6.0

Explicação:

 

Analisando a assinatura da function, recebe dois parâmetros, um opcional e outro obrigatório, que no final é retornado um valor do tipo Variant. Esse tipo significa que, será retornado um array de dados. (Referência 4.7 – Visual Basic 6.0)

 

 

 

Public Function ExecutaSQLArray(ByVal SQL As String, _

                                Optional ByVal sMetodoOrigem As String = "") As Variant

 

Referência: 4.7 – Visual Basic 6.0

 

 

Adicionei algumas variáveis no começo estáticas, cada uma com um tipo. (Referência 4.8 – Visual Basic 6.0)

 

 

 

Static vRetorno  As Variant

Static sMetodo   As String

Static bRetorno  As Boolean

 

Referência: 4.8 – Visual Basic 6.0

 

Simples variáveis que serão usadas dentro da function.

 

 

 

 

On Error GoTo error

   

    'Setando Objeto RecordSet

    Set RS = CreateObject("ADODB.RECORDSET")

   

    'Fazendo Open no Objeto SQL

    RS.Open SQL, CONN

      

    'Criando Array

    vRetorno = RS.GetRows

    ExecutaSQLArray = vRetorno

   

    'Fechando RS

    RS.Close

    Set RS = Nothing

 

Referência: 4.9 – Visual Basic 6.0

 

No próximo passo do código, usei o on error goto erro onde posso tratar o erro se acontecer algum. Criei um objeto do tipo RecordSet, abri esse objeto. Crio o array atribuindo para a variável do tipo declarada anteriormente.

 

O segredo em criar o array com o RecordSet é colocar a function GetRows. Dessa forma, é gerado um array e pode ser atribuída ao tipo variant do Visual Basic 6.0. Atribuo a variável vRetorno ao nome da function ExecutaSQLArray.

Fecho o RecordSet e seto para nothing. É muito importante colocar nothing para o objeto.

 

 

 

error:

    If Err.Number <> 0 And Err.Number <> 3021 Then

        'Fechando RS

        RS.Close

        Set RS = Nothing

        'Fechando Conexao

        ExecutaSQLArray = ""

    Else

        If Not IsArray(vRetorno) Then

            ExecutaSQLArray = "0"

        End If

    End If

Referência: 4.10 – Visual Basic 6.0

 

Explicação:

 

Para finalizar, dentro do laço error, existe uma condição para o código erro.number, se for diferente de zero ou diferente do número 3021, fecho os objetos e atribuo a function o valor vazio. Se não houver erro, criei mais uma condição perguntar se a variável não é array, se for verdadeiro, atribuo a function ao valor zero.

 

Segue a function total. (Referência 4.11 – Visual Basic 6.0)

 

 

Referência: 4.11 – Visual Basic 6.0

 

Bom, fico por aqui. Nos próximos passos, mostrarei as outras functions dando a devida explicação. Espero que tenha gostado.

 

 

Livros publicados do autor:

 

 

 

Mauricio Junior

www.aspneti.com

www.mauriciojunior.org

 

  • Mauricio Junior

    Mauricio Junior