par roubech » 19 Jan 2009 à 13:55
[syntax="LotusScript"] Set doc = s.CurrentDatabase.GetProfileDocument( "CfgCME" )
If ( doc Is Nothing ) Then
Error 4001, "paramètres non trouvés"
Exit Sub
Elseif( doc.CME_SourceName(0) = "" ) Then
Error 4001, "paramètres non trouvés"
Exit Sub
End If
con.SilentMode = True
If Not ( con.ConnectTo( doc.CME_SourceName(0), doc.CME_Login(0), doc.CME_Password(0) ) ) Then
Error 4001, "Impossible d'établir la connexion ODBC (" & con.GETEXTENDEDERRORMESSAGE & ")"
Exit Sub
End If
Sub ReadFromCME( connect As ODBCConnection, sName As String )
On Error Goto ErrorHandler
Dim qry As New ODBCQuery
Dim result As New ODBCResultSet
Dim newMember As CME_Record
Dim i As Integer
Set con = connect
CME_name = sName
Set qry.Connection = con
Set result.Query = qry
' Rechercher le dbid de la Direction à partir de son name
qry.SQL = "SELECT dbid FROM " & CME_table & " where type= '5' and name = '" & CME_name & "'"
result.Execute
If result.IsResultSetAvailable Then
' LogEvent( "'" & CME_name & "' trouvé dans '" & CME_table & "' : " & result.GetValue(1) )
CME_dbid = result.GetValue(1)
Else
Error 4000, "'" & CME_name & "' non trouvé dans '" & CME_table & "'"
End If
' Rechercher l'ensemble des Services rattachés à cette Direction
qry.SQL = "SELECT object_dbid FROM " & CME_tableMembers & " where object_type = '22' and folder_dbid = '" & CME_dbid & "'"
result.Execute
If result.IsResultSetAvailable Then
i = 0
Do
result.NextRow
Set newMember = New Service( Me )
Call newMember.ReadFromCME( con, result.GetValue(1) )
Set members(i) = newMember
' Print CME_name & " (" & i & ") = " & result.GetValue(1)
i = i + 1
Loop Until result.IsEndOfData
result.Close(DB_CLOSE)
Else
Error 4000, "Error searching Service for Direction '" & CME_name & "'"
End If
Exit Sub
ErrorHandler :
' Remonter l'erreur à la fonction appelante
Error Err, "Error in sub 'Direction::ReadFromCME' line " & Erl & " : " & Error
Exit Sub
End Sub[/syntax]