Bom, meu nome é Mauricio Junior. Continuarei essa parte V onde explico e desenvolvo algumas functions dentro do Visual Basic 6.0. É necessário ter as functions antes de desenvolver a página ASP final, que verifica usuário e senha utilizando três camadas.
A function mostrada anteriormente foi EXECUTASQLARRAY. A referência 5.1 mostro todas que ainda serão criadas dentro do Global.bas.
Legenda da Tabela | |
OK |
Functions mostradas e explicadas |
NAN |
Functions não mostradas |
Function |
Explicação da funcionalidade |
Ok |
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. |
Ok |
|
|
|
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. |
NAN |
|
|
|
Encryptografar |
Essa function serve apenas para receber um parâmetro, criptografar e retornar o valor criptografado. Irei utilizar um componente externo para isso. |
NAN |
|
|
|
DesenCryptar |
Essa function serve apenas para receber um parâmetro criptografado e retornar o valor descriptografado, ou seja, ao contrário da function anterior. |
NAN |
|
|
|
Referência: 5.1 Visual Basic 6.0
Agora irei criar a function ExecutaSQL, responsável apenas para executar os comandos SQL INSERT, UPDATE e DELETE. (5.2 – Visual Basic 6.0)
Public Function ExecutaSQL(ByVal SQL As String, _ Optional ByVal sMetodoOrigem As String = "") As Boolean On Error GoTo error If SQL <> "" Then CONN.Execute (SQL) End If error: If Err.Number <> 0 Then ExecutaSQL = False Else ExecutaSQL = True End If End Function |
Referência: 5.2 – Visual Basic 6.0
Explicação:
Analisando a assinatura da function, note que é pública e recebe dois parâmetros do tipo string, sendo um obrigatório e outro opcional. No final, é retornado um valor do tipo Boolean, ou seja, true ou false.
Public Function ExecutaSQL(ByVal SQL As String, _ Optional ByVal sMetodoOrigem As String = "") As Boolean |
Referência: 5.3 – Visual Basic 6.0
O próximo passo, utilizei o On Error GoTo error. Isso é significa que se algum erro ocorrer dentro dele, automaticamente será redirecionado para a parte de error.
On Error GoTo error |
Referência: 5.4 – Visual Basic 6.0
O parâmetro obrigatório ByVal SQL as String é necessariamente o comando SQL enviado por uma function anterior que terá todos os valores necessários para inserir no banco de dados.
If SQL <> "" Then CONN.Execute (SQL) End If |
Referência: 5.5 – Visual Basic 6.0
Na referência 5.5, existe uma condição onde verifico se a variável SQL é diferente de vazio, isso porque esse valor será executado junto ao Execute do objeto de conexão CONN. Já que a variável SQL terá um dos comandos INSERT, UPDATE ou DELETE, não haverá problemas para ser executado.
error: If Err.Number <> 0 Then ExecutaSQL = False Else ExecutaSQL = True End If |
Referência: 5.6 – Visual Basic 6.0
Dentro do “error:”, verifico se o é diferente de zero. Se for, a function recebe false, senão for, a function recebe true. Essa atribuição faz com que retorne o valor atribuído. É sempre bom utilizar o On Error GoTo error para prevenir qualquer tipo de erro dentro da dll.
A referência 5.7 mostra a ilustração de toda function mostrada e explicada.
Referência: 5.7 – Visual Basic 6.0
Encryptografar
Antes de qualquer coisas, na function utilizo outro componente dll chamado RC4. O mesmo possui a function EnCrypt onde recebe dois parâmetros. O primeiro parâmetro é do tipo string, ou seja, o valor decriptografado e o outro é do tipo numérico, ou seja, a chave. (5.8)
Public Function Encryptografar(ByVal DESCRICAO As String) As String 'funcao que encryptografa a descricao ou mesmo senha Static sRetorno On Error GoTo error 'setando variavel para criptografar e usando 'um metodo da dll 'nome da dll RC4DLL.DLL Set RC4 = CreateObject("RC4DLL.Crypt") sRetorno = RC4.EnCrypt(DESCRICAO, 9999) error: If Err.Number <> 0 Then Encryptografar = Err.Number Else Encryptografar = sRetorno End If Set RC4 = Nothing End Function |
Referência: 5.8 – Visual Basic 6.0
Explicação:
Public Function Encryptografar(ByVal DESCRICAO As String) As String |
Referência: 5.9 – Visual Basic 6.0
Como o de sempre, essa function é pública e recebe um parâmetro do tipo string. Além de receber parâmetro, retorna um parâmetro do tipo string. Isto é, o parâmetro sem cripitografada é enviado, retornando outro valor totalmente misturado ou criptografado.
A dll chamada RC4 é responsável pela criptografia do sistema. (5.10 – Visual Basic 6.0)
No começo da function declarei duas variáveis. (5.11 – Visual Basic 6.0)
Dim RC4 Static sRetorno |
Referência: 5.11 – Visual Basic 6.0
Como dito anteriormente em outras functions, é sempre bom usar “On Error GoTo error”, dessa forma posso pegar o erro “se ocorrer” em qualquer parte do código. Foi a próxima linha que adicionei. (5.12)
On Error GoTo error |
Referência: 5.12 – Visual Basic 6.0
Para a dll responsável pela criptografia deve ser registrada junto ao COM PLUS. Isso apenas para o uso da function dentro do VB. De qualquer forma, criei a function para utilizá-la normalmente. Declarei uma variável anteriormente para depois instanciá-la, criando um objeto da própria dll. (5.13 – Visual Basic 6.0)
Set RC4 = CreateObject("RC4DLL.Crypt") sRetorno = RC4.EnCrypt(DESCRICAO, 9999) |
Referência: 5.13 – Visual Basic 6.0
O comando CreateObject(“RC4DLL.Crypt”) faz com o que o objeto RC4 crie um vínculo com a dll, podendo assim ser usado todas as suas functions publicas. A function retorna uma string criptografada onde armazeno o valor na variável declarada anteriormente chamada sRetorno. Note que passei os parâmetros corretos para criptografar e manter uma “certa” segurança no sistema.
error: If Err.Number <> 0 Then Encryptografar = Err.Number Else Encryptografar = sRetorno End If Set RC4 = Nothing |
Referência: 5.14 – Visual Basic 6.0
Para finalizar a function, pergunto se existiu algum erro para retorná-lo ou retornar a variável criptografada. Não esqueça que retorno o valor do tipo string. Essa function em si é usada apenas internamente, ou seja, outras classes usarão essa function. No final de tudo, atribuo o RC4 para nothing. Com isso, destruo o objeto criado anteriormente.
Segue a ilustração inteira da function criada. (5.15)
Referência: 5.15 – Visual Basic 6.0
Alguns livros publicados pela editora Ciência Moderna.
Bom, fico por aqui.
Espero ter ajudado em alguma coisa.
Fique de olho nos próximos artigos.
Mauricio Junior