Bonjour,
actuellement en projet sur l'informatisation du système d'information d'une rhumerie, nous devons mettre en place un service Windows permettant de supprimer des processus.
BDD :
Access
2 fichier :
svcWS.vb : fichier contenant le service windows.
Une dll ClData dans le même projet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Protected Overrides Sub OnStart(ByVal args() As String) AddHandler tim.Elapsed, AddressOf mvTimer_Elapsed Me.i = 0 Me.countPassage = 0 Me.oDATA = New CLdata() Me.oDs = Me.oDATA.getExe() 'Me.count_process_interdit = Me.oDs.Tables(0).Rows.Count 'Me.tim.Enabled = True End Sub
Le OnStart se lance bien, mais le service se bloque du à la méthode fill de l'objet DataAdapter. Je ne vois pas du tout la raison ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 Public Class CLdata #Region "Private Members" REM----------------------------------- REM-- Déclaration des membres privés-- REM----------------------------------- Private oCNX As Odbc.OdbcConnection Private oCMD As Odbc.OdbcCommand Private oDA As Odbc.OdbcDataAdapter Private R_sql As String #End Region #Region "Interface CL_data" REM---------------------------------- REM--Déclaration des méthodes publiques-- REM--(interface de classes)-- REM---------------------------------- Public Sub New() Me.oCNX = New Odbc.OdbcConnection("Dsn=MS Access Database;dbq=C:\BDD\processus.accdb;defaultdir=C:\BDD;driverid=25;fil=MS Access;maxbuffersize=2048;pagetimeout=5") Me.oCMD = New Odbc.OdbcCommand Me.oDA = New Odbc.OdbcDataAdapter Me.R_sql = "RIEN" End Sub #End Region #Region "Function of I_data" Public Function getExe() As System.Data.DataSet Dim ods As System.Data.DataSet = New System.Data.DataSet Me.R_sql = "SELECT Nom_Process_Interdit FROM Processus_Interdit" With Me.oCMD .CommandText = Me.R_sql .CommandType = CommandType.Text .Connection = Me.oCNX End With With Me.oDA .SelectCommand = Me.oCMD End With 'L erreur viens avec la méthode Fill Me.oDA.Fill(ods, "Processus_Interdit") Return ods End Function #End Region End Class
Partager