quarta-feira, 18 de abril de 2012

Lotus Connector Data Access


USO DA FUNCIONALIDADE:


Use "Lotus Connector Data Access"
Dim objOracle As LotusConnectorDataAccess

aux  = |QUERY|


Set objOracle = New LotusConnectorDataAccess("oracle", "DatabaseName", usuario, senha)

If objOracle.Connect Then
If objOracle.ExecuteSQL(aux) Then
msgbox "QUERY EXECUTADA"
Exit Function

Else

Call objOracle.Disconnect
Exit Function

End If




SCRIPT LIBRARIES:

Option Public
Uselsx "*lsxlc"
Public Class LotusConnectorDataAccess
objConn As LCConnection

Private strLocalDBType As String
Private strLocalDatabase As String
Private strLocalUser As String
Private strLocalPassword As String
Private lngLocalRowsReturned As Long
Private flLocalFieldList As LCFieldList

'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'OBJETIVO: Construtor da classe
'PARAMETROS: strDBType -> Tipo de banco de dados (oracle, db2, etc)
'            strDatabase -> Nome do banco de dados a ser acessado
'                                   strUser -> O nome do usuário a conectar no banco de dados. Se não precisar e só passar ""
'                          strPassword -> A senha do usuário a conectar no banco de dados. Se não precisar e só passar ""
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Public Sub New(strDBType As String, strDatabase As String, strUser As String, strPassword As String)
DBType = strDBType
DatabaseName = strDatabase
UserName = strUser
Password = strPassword

Set OracleConection = New LCConnection(strDBType)
End Sub

'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'OBJETIVO: Destrutor da classe
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Public Sub Delete
Set objConn = Nothing
End Sub

Public Property Get RowsReturned As Long
RowsReturned = lngLocalRowsReturned
End Property

Public Property Set RowsReturned As Long
lngLocalRowsReturned = RowsReturned
End Property

Public Property Get DBType As String
DBType = strLocalDBType
End Property

Public Property Set DBType As String
strLocalDBType = DBType
End Property

Public Property Get DatabaseName As String
DatabaseName = strLocalDatabase
End Property

Public Property Set DatabaseName As String
strLocalDatabase = DatabaseName
End Property

Property Get UserName As String
UserName = strLocalUser
End Property

Property Set UserName As String
strLocalUser = UserName
End Property

Property Get Password As String
Password = strLocalPassword
End Property

Property Set Password As String
strLocalPassword = Password
End Property

Public Property Get FieldListReturned As LCFieldList
Set FieldListReturned = flLocalFieldList
End Property

Public Property Set FieldListReturned As LCFieldList
Set flLocalFieldList = FieldListReturned
End Property

Public Property Get OracleConection As LCConnection
Set OracleConection = objConn
End Property

Public Property Set OracleConection As LCConnection
Set objConn = OracleConection
End Property

'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'OBJETIVO: Conecta no banco de dados
'RETORNO: TRUE -> Se a conexão foi realizada com sucesso
'                   FALSE -> Se a conexão não foi estabelecida
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Public Function Connect() As Integer
On Error Goto Error_Handler

Select Case DBType
Case "oracle":
objConn.Server = DatabaseName
objConn.Userid = Username
objConn.Password = Password
objConn.Connect
Connect = True

Case "db2":
objConn.Database = DatabaseName
objConn.Userid = Username
objConn.Password = Password
objConn.Connect
Connect = True

Case Else
Msgbox "A classe não implementa acesso ao banco da dados " + DBType, 0+16, "Atenção"
Connect = False
End Select

Goto Fim

Error_Handler:
Msgbox "Ocorreu um erro ao tentar conectar ao banco de dados." + Chr(13) + Chr(10) + _
"Número: " + Cstr(Err) + " - Descrição: " + Error, 0+16, "Erro"
Connect = False
Resume Fim

Fim:
End Function

Public Sub Disconnect
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'OBJETIVO: Desconecta do SQL
'PARAMETROS: Nenhum
'RETORNO: Nenhum
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
If objConn.IsConnected Then
objConn.Disconnect
End If
End Sub

Public Function ExecuteSQL(strSQL As String) As Variant
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'OBJETIVO: Executa um comando SQL que pode ser SELECT, DELETE, UPDATE, INSERT
'PARAMETROS: strSQL -> A query que sera enviada ao banco de dados
'           fieldListReturned -> Retorna uma coleção de dados caso a query seja um select.
'RETORNO: TRUE -> Se a query foi executada com sucesso
'                   FALSE -> Se a query não foi executada com sucesso
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
On Error Goto Error_Handler

If objConn.IsConnected Then
Set FieldListReturned = New LCFieldList
RowsReturned = objConn.Execute(strSQL, FieldListReturned)
ExecuteSQL = True
Else
ExecuteSQL = False
End If
Goto Fim

Error_Handler:
Msgbox "Ocorreu um erro na função ExecuteSQL: " + Chr(13) + Chr(10) + _
"Número: " + Cstr(Err) + " - Descrição: " + Error, 0+16, "Erro"
ExecuteSQL = False
Resume Fim

Fim:
End Function
End Class