Bonjour a tous,
jai un curieux probleme avec mon appli. Cette appli communique avec une base de donnees SQL Server. Jai un boutton qui permet de creer une connection a mon serveur SQL et ensuite de effectuer une query dans ma base. Voici les 2 routines appellees par ce bouton:
Si je clique mon boutton une fois (je recois mes donnees..tout est beau jusqu'ici), ferme volontairement mon serveur SQL et reclique mon boutton, ConnectMe ne me donne aucune erreur, (je mattendais a ce que ca foire a vConnection.Open), mais GetData en retourne une ( -2147467259 [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionWrite (WrapperWrite())). Le veritable probleme est lorsque je relance mon serveur et reclique mon boutton. ConnectMe semble ok (aucune erreur) mais GetData en retourne une (2147467259 [Microsoft][ODBC SQL Server Driver]Communication link failure ). Je dois fermer et relancer mon appli pour que ca recommunique correctement, mais jaimerais fixer le tout sans avoir a redemarrer a chaque fois.
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 Public Sub ConnectMe(ByVal sDBase As String, _ ByVal sServer As String, _ ByVal sUserName As String, _ ByVal sPWD As String) On Error GoTo ConnectMe_Err Set vConnection= Nothing Set vConnection= New ADODB.Connection vConnection.ConnectionString = "Provider=MSDASQL.1;Password=" & sPWD _ & ";Persist Security Info=True;User ID=" & sUserName & _ ";Extended Properties=""Description=cnTagData;DRIVER=SQL Server;SERVER=" _ & sServer & _ ";UID=user;PWD=pass;APP=Visual Basic;WSID=appli;DATABASE=" & _ sDBase & " """ vConnection.Open ConnectMe_Err: msgbox "erreur de connection" End Sub Public Function GetData() As ADODB.Recordset on error goto error Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient rs.Open "spGetData", vConnection, adOpenStatic, adLockBatchOptimistic, adCmdStoredProc Set GetData= rs.Clone rs.Close Exit Function error: msgbox "probleme de query" End Sub
Aussi, si je laisse du temps a mon appli (quelques minutes)....la communication semble revenir, mais j'ignore toujours la difference du comportement de mon appli entre attendre ou relancer.
Jassume que je dois faire un "refresh" sur ma connection afin qu'elle se met a jour correctement...(ce qui se passe lors de fermeture/relancement de lappli) mais comment faire cela?
merci a lavance
Partager