1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
Private Sub Duplikator_Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Duplikator_Timer.Tick
' Traitement Duplikator : Recherche d'un instruction à traiter
Dim sql As String
Dim pDtb As Data.DataTable
If started Then
Duplikator_Timer.Enabled = False
sql = "SELECT TOP 1 * FROM duplicator WHERE traiter=0 and nbrexec=0"
pDtb = cBdd.pDtb(sql)
Application.DoEvents()
Call Me.mMainDuplicator(pDtb, sql)
Else
'Recherche d'une instruction à traiter parmi les lignes que l'on a déjà essayé de traiter mais qui n'ont pas marché
sql = "SELECT TOP 1 * FROM duplicator WHERE traiter=0 ORDER BY nbrexec ASC"
pDtb = cBdd.pDtb(sql)
Application.DoEvents()
Call Me.mMainDuplicator(pDtb, sql)
End If
pDtb.Dispose()
Duplikator_Timer.Enabled = True
End Sub
Private Sub mMainDuplicator(ByVal pDtb As Data.DataTable, ByVal sql As String)
If pDtb.Rows.Count > 0 Then
' On place tout de suite le nbexec à 1 pour ne plus sélectionner cette ligne au prochain passage
sql = "UPDATE duplicator SET nbrexec=nbrexec+1 WHERE id_duplicator=" & pDtb.Rows(0).Item("id_duplicator")
cBdd.mExecuteNonQuery(Sql)
For Each scrutation As ccScrutation In Me.CcMenuTable1.lstTableScrutation
If scrutation.pTableObjet.pTypObjet = pDtb.Rows(0).Item("id_element") Then
Dim ta_duplicator As New mStartCommand(AddressOf scrutation.mStartCommand)
Dim xml As New Xml.XmlDocument
xml.LoadXml(pDtb.Rows(0).Item("xml").ToString)
ta_duplicator.BeginInvoke(xml, pDtb.Rows(0).Item("id_action"), pDtb.Rows(0).Item("id_duplicator"), Nothing, Nothing)
End If
Next
End If
End Sub |
Partager