Page 1 sur 1

Notes vers SQL Via ODBC

MessagePublié: 13 Sep 2011 à 09:07
par Michael DELIQUE
2 bibliothèques codé en OO pour la connexcion SQL Via ODBC, voici la version lourde

[code]Option Declare

UseLSX "*LSXODBC"
Const Structure_Log = {Script Library : ToolsSQL_ODBC_LS}

Public Class NotesODBCConnection
Private ConnexionODBC As Odbcconnection
Private DataSource As String
private UserID As String
Private ErrorMessage As String
Private ErrorConnexion As String
Private nbErrorConnexion As Long

Property Get ErrorConnexionText As String
ErrorConnexionText = ErrorConnexion
End Property
Property Get ErrorConnexionNumber As Long
ErrorConnexionNumber = nbErrorConnexion
End Property

sub New()
On Error GoTo CatchError
Set ConnexionODBC = New Odbcconnection
If ConnexionODBC Is Nothing Then
Error 9999,"ConnexionODBC Is Nothing"
Exit Sub
End If
DataSource = ""
UserID = ""
Exit Sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
Msgbox "("+Structure_Log+" : "+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Function getConnexion() As Odbcconnection
On Error GoTo CatchError
If Not ConnexionODBC Is Nothing then
Set getConnexion = ConnexionODBC
Else
Set getConnexion = Nothing
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Set getConnexion = Nothing
Exit Function
End Function

sub setAutoCommit(wnbAutoCommit As Boolean)
On Error GoTo CatchError
ConnexionODBC.Autocommit = wnbAutoCommit
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Function getAutoCommit() As Boolean
On Error GoTo CatchError
getAutoCommit = ConnexionODBC.Autocommit
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getAutoCommit = false
Exit Function
End Function

Sub setCommitOnDisconnect (wnbCOD As Boolean)
On Error GoTo CatchError
ConnexionODBC.Commitondisconnect = wnbCOD
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Function CommitTransactions As Boolean
On Error GoTo CatchError
CommitTransactions = ConnexionODBC.Committransactions()
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit Function
End Function

Function getCommitOnDisconnect As Boolean
On Error GoTo CatchError
getCommitOnDisconnect = ConnexionODBC.Commitondisconnect
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getCommitOnDisconnect = false
Exit Function
End Function

Function getThreadSafeDriver() As Boolean
On Error GoTo CatchError
getThreadSafeDriver = ConnexionODBC.Threadsafedriver
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getThreadSafeDriver = false
Exit Function
End Function

Sub setThreadSafeDriver( wnbTSD As Boolean)
On Error GoTo CatchError
ConnexionODBC.Threadsafedriver = wnbTSD
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Function getMasterRevision() As String
On Error GoTo CatchError
getMasterRevision = ""
If Not ConnexionODBC Is Nothing Then
getMasterRevision = ConnexionODBC.Getlsdomasterrevision
End if
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getMasterRevision = ""
Exit Function
End Function

Function getDataSourceName() As String
On Error GoTo CatchError
getDataSourceName = ""
If Not ConnexionODBC Is Nothing Then
If ConnexionODBC.Isconnected()= True then
getDataSourceName = ConnexionODBC.Datasourcename
End if
End if
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getDataSourceName = ""
Exit Function
End Function

Sub setSilentMode(wnbEtat As Boolean)
On Error GoTo CatchError
If Not ConnexionODBC Is Nothing Then
ConnexionODBC.Silentmode = wnbEtat
End if
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Function getSilentMode() As Boolean
On Error GoTo CatchError
getSilentMode= ConnexionODBC.Silentmode
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit Function
End Function

Sub Reset()
On Error GoTo CatchError
DataSource = ""
UserID = ""
ErrorMessage = ""
ErrorConnexion = ""
nbErrorConnexion = 0
If Not (ConnexionODBC Is Nothing) Then
If ConnexionODBC.isConnected = True Then
Call ConnexionODBC.disconnect
End If
Set ConnexionODBC = nothing
End If
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

function DisConnexion()As boolean
On Error GoTo CatchError
DisConnexion = True
DataSource = ""
UserID = ""
If Not (ConnexionODBC Is Nothing) Then
If ConnexionODBC.isConnected = true Then
DisConnexion = ConnexionODBC.disconnect
End If
End If
Exit function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
DisConnexion = false
Exit Function
End function

Function getErrorNumber()As Integer
On Error GoTo CatchError
getErrorNumber = 0
If Not (ConnexionODBC Is Nothing) Then
getErrorNumber = ConnexionODBC.GetError
End if
Exit Function
CatchError:
ErrorMessage = ""
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getErrorNumber = 0
Exit Function
End Function

Function getErrorText( wnbExtentedMessage As Boolean)As String
Dim nbError As Integer
On Error GoTo CatchError
getErrorText = ""
If Not (ConnexionODBC Is Nothing) Then
nbError = ConnexionODBC.Geterror()
If wnbExtentedMessage = True Then
getErrorText = ConnexionODBC.GetExtendedErrorMessage(nbError )+" ("+CStr(nbError)+")"
Else
getErrorText = ConnexionODBC.GetErrorMessage(nbError)+" ("+CStr(nbError)+")"
End If
End if
Exit Function
CatchError:
ErrorMessage = ""
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getErrorText = ""
Exit Function
End Function

Function getListFields(wTableName As String) As Variant
Dim ArrayReturn (0 To 0) As String
On Error GoTo CatchError
ArrayReturn(0) = ""
getListFields = ArrayReturn
Erase ArrayReturn
If Not (ConnexionODBC Is Nothing) Then
If ConnexionODBC.Isconnected() = True then
If IsArray(ConnexionODBC.Listfields) = True Then
If IsEmpty(ConnexionODBC.Listfields) = False then
getListFields = ConnexionODBC.Listfields(Trim(wTableName))
End if
End If
End if
End if
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
ArrayReturn(0) = ""
getListFields = ArrayReturn
Erase ArrayReturn
Exit Function
End Function

function setConnexion(wDataSource As String, wUserID As String, wPassword As String, wnbSilentMode As Boolean)As boolean
Dim nbRetour As Boolean
On Error GoTo CatchError
setConnexion = False
ErrorConnexion = ""
nbErrorConnexion = 0
If ConnexionODBC Is Nothing Then
Error 9999,"ConnexionODBC is Nothing"
End If
ConnexionODBC.Silentmode = wnbSilentMode
If ConnexionODBC.isConnected = True Then
If DataSource = wDataSource Then
If wUserID = UserID Then
setConnexion = True
Exit Function
End If
End If
End If
On Error Resume Next
nbRetour = ConnexionODBC.Connectto(wDataSource, wUserID, wPassword)
On Error GoTo CatchError
If nbRetour = false Then
DataSource = ""
UserID = ""
ErrorConnexion = Trim(ConnexionODBC.Getextendederrormessage())
nbErrorConnexion = ConnexionODBC.Geterror()
Else
DataSource = wDataSource
UserID = wUserID
ErrorConnexion = ""
nbErrorConnexion = 0
setConnexion = ConnexionODBC.isConnected
End If
Exit function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
setConnexion = false
Exit function
End Function

Function setRollBack() As Boolean
On Error GoTo CatchError
setRollBack = False
If Not (ConnexionODBC Is Nothing) Then
If ConnexionODBC.isConnected = True Then
setRollBack = ConnexionODBC.Rollbacktransactions()
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
setRollBack = false
Exit Function
End Function

Function TestConnexion() As Boolean
On Error GoTo CatchError
TestConnexion = False
If Not (ConnexionODBC Is Nothing) Then
TestConnexion = ConnexionODBC.isConnected
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
TestConnexion = False
Exit Function
End Function

Function getListProcedures() As Variant
Dim ArrayReturn (0 To 0) As String
On Error GoTo CatchError
ArrayReturn(0) = ""
getListProcedures = ArrayReturn
Erase ArrayReturn
If Not ConnexionODBC Is Nothing Then
If ConnexionODBC.isConnected = True Then
getListProcedures = ConnexionODBC.Listprocedures()
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Erase ArrayReturn
ArrayReturn(0) = ""
getListProcedures = ArrayReturn
Erase ArrayReturn
Exit Function
End Function

Function getListTables() As Variant
Dim ArrayReturn (0 To 0) As String
On Error GoTo CatchError
ArrayReturn(0) = ""
getListTables = ArrayReturn
Erase ArrayReturn
If Not ConnexionODBC Is Nothing Then
If ConnexionODBC.isConnected = True Then
getListTables = ConnexionODBC.Listtables()
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Erase ArrayReturn
ArrayReturn(0) = ""
getListTables = ArrayReturn
Erase ArrayReturn
Exit Function
End Function

Function getListDataSources() As Variant
Dim ArrayReturn (0 To 0) As String
On Error GoTo CatchError
ArrayReturn(0) = ""
getListDataSources = ArrayReturn
Erase ArrayReturn
If Not ConnexionODBC Is Nothing Then
If ConnexionODBC.isConnected = True Then
getListDataSources = ConnexionODBC.Listtables()
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Erase ArrayReturn
ArrayReturn(0) = ""
getListDataSources = ArrayReturn
Erase ArrayReturn
Exit Function
End Function

Function TestOptionSupported(wvrOption As Variant) As Boolean
Dim nbOption As Integer
On Error GoTo CatchError
TestOptionSupported = False
If ConnexionODBC Is Nothing Then
Exit Function
elseif ConnexionODBC.isConnected = False Then
Exit function
End if
Select Case DataType(wvrOption)
Case 2,3,4,5,6,8
Select Case UCase(Trim(CStr(wvrOption)))
Case CStr(DB_SUPP_CURSORS),"DB_SUPP_CURSORS","SUPP_CURSORS","CURSORS","CURSOR","C"
nbOption = DB_SUPP_CURSORS
Case CStr(DB_SUPP_PROCEDURES),"DB_SUPP_PROCEDURES","SUPP_PROCEDURES","PROCEDURES","PROCEDURE","P"
nbOption = DB_SUPP_PROCEDURES
Case CStr(DB_SUPP_READONLY),"DB_SUPP_READONLY","SUPP_READONLY","READONLY","R"
nbOption = DB_SUPP_READONLY
Case CStr(DB_SUPP_SILENTMODE),"DB_SUPP_SILENTMODE","SUPP_SILENTMODE","SILENTMODE","S"
nbOption = DB_SUPP_SILENTMODE
Case Else
Error 9999,"Bad wnbOption : "+CStr(wvrOption)
End Select
Case Else
Error 9999,"Bad DataType wnbOption : "+CStr(DataType(wvrOption))
End Select
TestOptionSupported = ConnexionODBC.Issupported(nbOption)
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
TestOptionSupported = False
Exit Function
End Function

Private Sub ErrorTraitement()
On Error Resume Next
DataSource = ""
UserID = ""
If Not (ConnexionODBC Is Nothing) Then
If ConnexionODBC.isConnected = True Then
Call ConnexionODBC.disconnect
End If
End If
On Error GoTo CatchError
Exit Sub
CatchError:
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
Exit Sub
End Sub
Private Function ErrorTraitementMessage()
On Error Resume Next
ErrorTraitementMessage = ""
If Not ConnexionODBC Is Nothing Then
If ConnexionODBC.Geterror <> DBstsSUCCESS Then
ErrorTraitementMessage = Chr(10)+ConnexionODBC.GetExtendedErrorMessage(ConnexionODBC.Geterror)+" ("+CStr(ConnexionODBC.Geterror)+")"
End If
End If
On Error GoTo CatchError
Exit Function
CatchError:
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
ErrorTraitementMessage = ""
Exit Function
End Function
End Class

Public Class NotesODBCData
Private QueryODBC As Odbcquery
Private ResultsetODBC As Odbcresultset
Private nbNumParameter As Long
Private nbNumRow As Long
Private nbNumColumn As integer
Private nbQueryIsOk As Boolean
Private nbAutoClose As Boolean
Private nbDefautTimeOut As Integer
Private nbDefautCacheLimit As Long
Private ErrorMessage As String

Property Get NumRow As Long
NumRow = nbNumRow
End Property
Property Get NumColumn As Integer
NumColumn = nbNumColumn
End Property
Property Get QueryIsOk As Boolean
QueryIsOk = nbQueryIsOk
End Property
Property Get CacheLimitAll As Long
CacheLimitAll = DB_ALL
End Property
Property Get CacheLimitNone As Long
CacheLimitNone = DB_None
End Property
Property Get NumParameters As Long
NumParameters = nbNumParameter
End Property

Sub New(wConnexionODBC As NotesODBCConnection, wnbAutoClose As Boolean, wnbTimeOut As integer)
On Error GoTo CatchError
If wConnexionODBC Is Nothing Then
Error 9999,"wConnexionODBC is Nothing"
Exit sub
ElseIf wConnexionODBC.TestConnexion() = False Then
error 9999,"wConnexionODBC is not connected"
Exit sub
End If
Set QueryODBC = New Odbcquery
If QueryODBC Is Nothing Then
Error 9999,"QueryODBC Is Nothing"
Exit sub
End If
Set QueryODBC.Connection = wConnexionODBC.getConnexion()
nbDefautTimeOut = QueryODBC.Queryexecutetimeout
If wnbTimeOut > 0 Then
QueryODBC.Queryexecutetimeout = wnbTimeOut
End If
Set ResultsetODBC = New Odbcresultset
If ResultsetODBC Is Nothing Then
Error 9999,"ResultsetODBC Is Nothing"
Exit Sub
End If
Set ResultsetODBC.Query = QueryODBC
nbDefautCacheLimit = ResultSetODBC.Cachelimit
nbNumRow= 0
nbNumColumn = 0
nbNumParameter= 0
nbQueryIsOk = False
nbAutoClose = wnbAutoClose
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Sub Close()
On Error GoTo CatchError
nbNumRow= 0
nbNumColumn = 0
nbNumParameter = 0
nbQueryIsOk = False
If Not ResultsetODBC Is nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
Exit Sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit Sub
End sub

Sub setRowID(wnbUseRowID As Boolean)
On Error GoTo CatchError
If Not QueryODBC Is Nothing Then
QueryODBC.Userowid = wnbUseRowID
End If
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End sub

Function getUseRowID() As Boolean
On Error GoTo CatchError
getUseRowID = false
If Not QueryODBC Is Nothing Then
getUseRowID = QueryODBC.Userowid
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getUseRowID = False
Exit Function
End Function

Function getTrimTrailingSpaces() As Boolean
On Error GoTo CatchError
getTrimTrailingSpaces = True
If Not ResultSetODBC Is Nothing Then
getTrimTrailingSpaces = ResultSetODBC.Trimtrailingspaces
If nbAutoClose = True Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getTrimTrailingSpaces = True
Exit Function
End Function

Sub setTrimTrailingSpaces(wnbTTS As Boolean)
On Error GoTo CatchError
If Not ResultSetODBC Is Nothing Then
ResultSetODBC.Trimtrailingspaces = wnbTTS
If nbAutoClose = True Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Function getErrorNumber(wvrObject As Variant) As integer
On Error GoTo CatchError
Select Case DataType(wvrObject)
Case 0,1,10
REM EMPTY,NULL, OLE error
getErrorNumber = 0
Case Else
getErrorNumber = wvrObject.GetError
End select
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getErrorNumber = 0
Exit Function
End Function

Function getErrorText(wvrObject As Variant, wnbExtentedMessage As Boolean)As String
Dim nbError As Integer
On Error GoTo CatchError
Select Case DataType(wvrObject)
Case 0,1,10
REM EMPTY,NULL, OLE error
getErrorText = ""
End Select
nbError = wvrObject.GetError
If wnbExtentedMessage = True Then
getErrorText = wvrObject.GetExtendedErrorMessage(nbError)+" ("+cstr(nbError)+")"
Else
getErrorText = wvrObject.GetErrorMessage(nbError)+" ("+CStr(nbError)+")"
End If
Exit Function
CatchError:
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
Call ErrorTraitement()
getErrorText = ""
Exit Function
End Function

Sub setTimeOut(wnbTimeOut As integer)
On Error GoTo CatchError
QueryODBC.Queryexecutetimeout = wnbTimeOut
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Function getTimeOut() As Integer
On Error GoTo CatchError
getTimeOut = QueryODBC.Queryexecutetimeout
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit Function
End Function

Function setSQLNoReturn(wStatement As String)As boolean
On Error GoTo CatchError
nbQueryIsOk = False
If Trim(wStatement) = "" Then
Error 9999,"wStatement is empty"
Exit function
End If
nbNumRow = 0
nbNumColumn = 0
QueryODBC.Sql = wStatement
Call ResultsetODBC.Execute()
If ResultsetODBC Is Nothing Then
Error 9999,"ResultsetODBC is Nothing"
Exit function
End If
nbQueryIsOk = ResultsetODBC.IsResultSetAvailable
setSQLNoReturn = nbQueryIsOk
If nbQueryIsOk = True Then
Resultsetodbc.Lastrow
nbNumRow = ResultsetODBC.Numrows()
nbNumColumn = ResultsetODBC.Numcolumns()
nbNumParameter = ResultsetODBC.Numparameters()
Resultsetodbc.Firstrow
Else
nbNumRow = 0
nbNumColumn = 0
nbNumParameter = 0
End If
If nbAutoClose = True Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
setSQLNoReturn = false
Exit Function
End Function

function getMaxRow As Long
On Error GoTo CatchError
getMaxRow = ResultsetODBC.Maxrows
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing then
Call ResultsetODBC.Close(DB_CLOSE)
End if
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit Function
End Function

Sub setMaxRow(wnbMaxRow As Long)
On Error GoTo CatchError
ResultsetODBC.Maxrows = Abs(wnbMaxRow)
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Function getAutoClose As Boolean
On Error GoTo CatchError
getAutoClose = nbAutoClose
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit Function
End Function

Sub setAutoClose(wnbAutoClose As Boolean)
On Error GoTo CatchError
nbAutoClose = wnbAutoClose
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Function getFetchbatchsize() As Long
On Error GoTo CatchError
getFetchbatchsize = ResultsetODBC.Fetchbatchsize
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit Function
End Function

Sub setFetchbatchsize(wnbSize)
On Error GoTo CatchError
If wnbSize < 1 Then
ResultsetODBC.Fetchbatchsize = 1
Else
ResultsetODBC.Fetchbatchsize = wnbSize
End If
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Function getCacheLimit() As Long
On Error GoTo CatchError
getCacheLimit = ResultsetODBC.Cachelimit
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit Function
End Function

Sub setCacheLimit(wnbCacheLimit)
On Error GoTo CatchError
If wnbCacheLimit <= DB_NONE Then
ResultsetODBC.Cachelimit = DB_None
ElseIf wnbCacheLimit >= DB_ALL Then
ResultsetODBC.Cachelimit = DB_ALL
Else
ResultsetODBC.Cachelimit = wnbCacheLimit
End If
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Function getRowStatus(wnbRow As Long) As Integer
Dim nbRow As Long
On Error GoTo CatchError
nbRow = wnbRow
If nbRow < 0 Then
nbRow = 0
ElseIf nbRow > nbNumRow Then
nbRow = nbNumRow
End If
ResultsetODBC.Currentrow = nbRow
getRowStatus = ResultsetODBC.Getrowstatus()
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit Function
End Function

Function getCurrentRowStatus() As Integer
On Error GoTo CatchError
getCurrentRowStatus = ResultsetODBC.Getrowstatus()
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit Function
End Function

function getReadOnly As Boolean
On Error GoTo CatchError
If ResultsetODBC.Isresultsetavailable() = True Then
getReadOnly = ResultsetODBC.Readonly
End If
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit Function
End Function

Sub setReadOnly (wnbReadOnly As Boolean)
On Error GoTo CatchError
If ResultsetODBC.Isresultsetavailable() = True Then
ResultsetODBC.Readonly = wnbReadOnly
End If
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Function getCurrentRow() As Long
On Error GoTo CatchError
getCurrentRow = 0
If ResultsetODBC.Isresultsetavailable() = True Then
getCurrentRow = ResultsetODBC.Currentrow
End If
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getCurrentRow = 0
Exit Function
End Function

Sub setCurrentRow(wnbCurrentRow As Long)
Dim nbCurrentRow As Long
On Error GoTo CatchError
If ResultsetODBC.Isresultsetavailable() = True Then
nbCurrentRow = Abs(wnbCurrentRow)
If nbCurrentRow > ResultsetODBC.Numrows() Then
nbCurrentRow = ResultsetODBC.Numrows()
End If
ResultsetODBC.Currentrow =nbCurrentRow
End If
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Function getSQL() As String
On Error GoTo CatchError
getSQL = ""
If Not QueryODBC Is Nothing Then
getSQL = QueryODBC.Sql
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getSQL = ""
Exit Function
End Function

Sub setSQL(wSQLRequest As String, wnbForceClose As Boolean )
On Error GoTo CatchError
nbQueryIsOk = false
If Trim(wSQLRequest) = "" Then
Error 9999,"wSQLRequest is Empty"
exit sub
End If
QueryODBC.Sql = wSQLRequest
If QueryODBC.Geterror() <> DBstsSUCCESS Then
Error QueryODBC.Geterror,QueryODBC.Getextendederrormessage()
Exit sub
End If
If ResultsetODBC.Execute = False Then
Error ResultsetODBC.Geterror,ResultsetODBC.Getextendederrormessage()
Exit Sub
ElseIf ResultsetODBC.Geterror() <> DBstsSUCCESS Then
Error ResultsetODBC.Geterror,ResultsetODBC.Getextendederrormessage()
Exit Sub
End If
nbQueryIsOk = ResultsetODBC.Isresultsetavailable
If nbQueryIsOk = True Then
Resultsetodbc.Lastrow
nbNumRow = ResultsetODBC.Numrows()
nbNumColumn = ResultsetODBC.Numcolumns()
nbNumParameter = ResultsetODBC.Numparameters()
Resultsetodbc.Firstrow
If wnbForceClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Else
nbNumRow = 0
nbNumColumn = 0
nbNumParameter = 0
If nbAutoClose = True Or wnbForceClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
End If
Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
nbQueryIsOk = false
Exit sub
End Sub

Sub setProcedure(wProcedure As String, wvrArgument As variant)
Dim nbArgument As boolean
On Error GoTo CatchError
nbQueryIsOk = False
If Trim(wProcedure) = "" Then
Error 9999,"wProcedure is Empty"
Exit Sub
End If
nbArgument = False
If Isarray(wvrArgument) = True Then
If IsEmpty(wvrArgument) = False Then
nbArgument = true
End If
End If
If nbArgument = True Then
If ResultsetODBC.Execprocedure(wProcedure,DB_PARAM_ARRAY,wvrArgument) = False Then
Error ResultsetODBC.Geterror,ResultsetODBC.Getextendederrormessage()
Exit Sub
End If
ElseIf ResultsetODBC.Execprocedure(wProcedure) = False Then
Error ResultsetODBC.Geterror,ResultsetODBC.Getextendederrormessage()
Exit Sub
End if
If ResultsetODBC.Geterror() <> DBstsSUCCESS Then
Error ResultsetODBC.Geterror,ResultsetODBC.Getextendederrormessage()
Exit Sub
End If
nbQueryIsOk = ResultsetODBC.Isresultsetavailable
If nbQueryIsOk = True Then
Resultsetodbc.Lastrow
nbNumRow = ResultsetODBC.Numrows()
nbNumColumn = ResultsetODBC.Numcolumns()
nbNumParameter = ResultsetODBC.Numparameters()
Resultsetodbc.Firstrow
Else
nbNumRow = 0
nbNumColumn = 0
nbNumParameter = 0
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
End If

Exit sub
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Exit sub
End Sub

Function getValueArray() As Variant
Dim nbRow2 As Long
Dim i As Long
Dim j As Integer
Dim arrayReturn () As Variant
On Error GoTo CatchError
getValueArray = Null
If ResultsetODBC Is Nothing Then
Exit Function
ElseIf ResultsetODBC.IsResultSetAvailable = False Then
Exit Function
End If
If ResultsetODBC.Maxrows > 0 Then
nbRow2 = ResultsetODBC.Maxrows
i = nbRow2-1
Else
nbRow2 = nbNumRow
i = nbNumRow-1
End If
If i<0 Then
i = 0
End If
j = nbNumColumn-1
If j < 0 Then
j=0
End If
ReDim arrayReturn (0 To i, 0 To j)
For i = 1 To nbRow2
ResultsetODBC.Currentrow = i
For j=1 To nbNumColumn
arrayReturn(i-1, j-1)= ResultsetODBC.Getvalue(j)
Next
Next
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
getValueArray = arrayReturn
Erase arrayReturn
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Erase arrayReturn
getValueArray = Null
Exit Function
End Function

Function getValue(wvrColumn As Variant) As Variant
Dim nbColumn As Integer
Dim NameColumn As String
On Error GoTo CatchError
getValue = Null
If ResultsetODBC Is Nothing Then
Exit Function
ElseIf ResultsetODBC.IsResultSetAvailable = False Then
Exit Function
End If
nbColumn = 0
NameColumn = ""
Select Case DataType(wvrColumn)
Case 8
REM String
NameColumn = CStr(wvrColumn)
Case 2,3,4,5,6,11
nbColumn = CInt(wvrColumn)
If nbColumn < 1 Then
nbColumn = 1
ElseIf nbColumn > nbNumColumn Then
nbColumn = nbNumColumn
End If
Case Else
nbColumn = 1
End Select
If nbColumn > 0 Then
getValue = ResultsetODBC.Getvalue(nbColumn)
Else
getValue = ResultsetODBC.Getvalue(NameColumn)
End If
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getValue = null
Exit Function
End Function

Function getValueData(wnbRow As Long,wvrColumn As variant) As Variant
Dim nbColumn As Integer
Dim NameColumn As String
Dim nbRow As Long
On Error GoTo CatchError
getValueData = Null
If ResultsetODBC Is Nothing Then
Exit Function
ElseIf ResultsetODBC.IsResultSetAvailable = False Then
Exit Function
End If
nbRow = wnbRow
If nbRow < 0 Then
nbRow = 0
ElseIf nbRow > nbNumRow Then
nbRow = nbNumRow
End If
nbColumn = 0
NameColumn = ""
Select Case DataType(wvrColumn)
Case 8
REM String
NameColumn = CStr(wvrColumn)
Case 2,3,4,5,6,11
nbColumn = CInt(wvrColumn)
If nbColumn < 1 Then
nbColumn = 1
ElseIf nbColumn > nbNumColumn Then
nbColumn = nbNumColumn
End If
Case else
nbColumn = 1
End Select
ResultsetODBC.Currentrow = nbRow
If nbColumn > 0 then
getValueData = ResultsetODBC.Getvalue(nbColumn)
Else
getValueData = ResultsetODBC.Getvalue(NameColumn)
End if
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getValueData = Null
Exit Function
End Function

Function getValueRow(wnbRow As Long) As Variant
Dim nbRow As Long
Dim i As Long
Dim arrayReturn () As variant
On Error GoTo CatchError
nbRow = wnbRow
If nbRow < 0 Then
nbRow = 0
ElseIf nbRow > nbNumRow Then
nbRow = nbNumRow
End If
i = nbNumColumn
If i < 1 Then
i = 1
End If
ReDim arrayReturn (0 To i)
ResultsetODBC.Currentrow = nbRow
For i=1 To nbNumColumn
arrayReturn(i-1)= ResultsetODBC.Getvalue(i)
Next
getValueRow = arrayReturn
Erase arrayReturn
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
Erase arrayReturn
getValueRow = Null
Exit Function
End Function

function DeleteRow(wTableName As String,wnbRow As Long)As boolean
Dim nbRow As Long
On Error GoTo CatchError
DeleteRow = False
If Trim(wTableName) = "" Then
Error 9999,"wTableName isEmpty"
Exit function
End If
nbRow = wnbRow
If nbRow < 0 Then
nbRow = 0
ElseIf nbRow > nbNumRow Then
nbRow = nbNumRow
End If
ResultsetODBC.Currentrow = nbRow
DeleteRow = ResultsetODBC.Deleterow(wTableName)
If nbAutoClose = True Then
If Not ResultsetODBC Is Nothing Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
DeleteRow = False
Exit function
End Function

Function getHasRowChanged(wnbRow As Long) As Boolean
Dim nbRow As Long
On Error GoTo CatchError
getHasRowChanged = False
nbRow = wnbRow
If nbRow < 0 Then
nbRow = 0
ElseIf nbRow > nbNumRow Then
nbRow = nbNumRow
End If
If Not ResultsetODBC Is Nothing Then
If ResultsetODBC.Isresultsetavailable() = True Then
ResultsetODBC.Currentrow = nbRow
getHasRowChanged = ResultsetODBC.Hasrowchanged()
End If
If nbAutoClose = True Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getHasRowChanged = false
Exit Function
End Function

Function getHasCurrentRowChanged As Boolean
On Error GoTo CatchError
getHasCurrentRowChanged = False
If Not ResultsetODBC Is Nothing Then
If ResultsetODBC.Isresultsetavailable() = True then
getHasCurrentRowChanged = ResultsetODBC.Hasrowchanged()
End If
If nbAutoClose = True Then
Call ResultsetODBC.Close(DB_CLOSE)
End If
End If
Exit Function
CatchError:
ErrorMessage = ErrorTraitementMessage()
MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)+ErrorMessage,16," ERREUR !"
ErrorMessage = ""
Call ErrorTraitement()
getHasCurrentRowChanged = false
Exit Function
End Function

Function getIsBeginOfData As boolean
On Error GoTo CatchError
getIsBegin