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