Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/12/2010, 23h14   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 41
Points : 10
Points : 10
Par défaut "Echec de liaison" Sql server

Bonjour à tous.
Je rencontre des problème avec mon code VB6 ou Sql Server (base chez mon hébergeur).
En fait le problème est que lorsque je me connecte sur ma bdd distante à partir de mon application vb6, la connexion semble durer 10 à 15 secondes ! le temps de saisir une form et plus de connection.
Pouvez vous me dire si cela vient de mon code, ADOBD.... ou simplement de mon hebergeur ? Quelle solutions je peux avoir ?

Code :
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
Global gConnexion AS ADODB.Connection
Global dynNomTable AS ADODB.Recordset
 
----------------------------------------------------------
FUNCTION connexion()
 
    ON Error GoTo ErreurOpen
 
Dim NomUtilisateur AS String, MotDePasse AS String, NomDuServeur AS String, BDtest AS String
Dim strCnxn AS String
 
NomUtilisateur = "XXXXXXXX" 
MotDePasse = "XXXXXXXXXX"
NomDuServeur = "XXXXXXXXX"
BDtest = "XXXXXXXXXX"
 
            strCnxn = "UID=" & NomUtilisateur & _
                    "; PWD=" & MotDePasse & _
                    "; DRIVER={SQL Server}" & _
                    "; Server=" & NomDuServeur & _
                    "; Database=" & BDtest & ";"
 
    SET gConnexion = New ADODB.Connection
    gConnexion.Open strCnxn
 
    Exit FUNCTION
 
ErreurOpen:
 
    Screen.MousePointer = vbArrow
 
    MsgBox "Problème d'accès aux données." & Error, vbCritical
 
    End
 
End FUNCTION
angus9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 11h07   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour


je pense que votre connexion ne "dure" pas 10 secondes, mais que vous avez un timeout de connexion au bout de 10 secondes, car VB6 n'arrive pas a se connecter !

supprimez le "on error goto", afin de voir le message d'erreur (ou affichez l'erreur dans votre message), car sans connaitre la nature de l'erreur, difficile de vous aider...
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 16h43   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 41
Points : 10
Points : 10
Par défaut Re

En fait j'ai supprimer le
de ma fonction connexion.

J'ai saisi les renseignements de ma form et au moment de valider, VB6 m'indique :
"[MICROSOFT][ODBC SQL SERVER DRIVER]Echec de la liaison de communication"
J'ai donc ce message quand il s'arrete au niveau de la requete de chargement (qui charge mon listwiew) après l'enregistrement des données dans la basde SQL Server. VB6 plante non pas dans la fonction mais dans mon code SQL de la Form utilisée. (command_click).
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub ChargeInfo()
 
    Screen.MousePointer = vbHourglass ' Curseur souris = sablier
 
    MonSQL$ = "SELECT Nom, Prenom, Code FROM TNom"
    MonSQL$ = MonSQL$ & " Where CodeCategorie = " & cmbCategorie(0).ItemData(cmbCategorie(0).ListIndex)
    MonSQL$ = MonSQL$ & " And ID_Client = " & IDClient
    MonSQL$ = MonSQL$ & " And SaisArr <= " & cmbSaison.ItemData(cmbSaison.ListIndex)
    MonSQL$ = MonSQL$ & " And SaisDep > " & cmbSaison.ItemData(cmbSaison.ListIndex)
    MonSQL$ = MonSQL$ & " ORDER BY Nom, Prenom"
 
    Set dynNomTable = New ADODB.Recordset ' ON s'alloue de la mémoire pour créer une collection d'enregistrements
    dynNomTable.Open MonSQL$, gConnexion, adOpenForwardOnly, adLockReadOnly ' on extrait ce que l'ON veut (avec ce que j'ai appelé MonSQL)
Je ne sais pas quoi faire. Une idée ?
angus9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2011, 20h01   #4
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 41
Points : 10
Points : 10
Par défaut Re

Pour revenir a mon probleme, en fait la premiere requete SQL (de vb6) est executée mais la requete qui recharge ma listview apres l'enregistrement
Code :
Private Sub ChargeInfo()
, est stoppée.
angus9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2011, 16h30   #5
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 41
Points : 10
Points : 10
Par défaut Up

Personne pour m'aider ou m'aiguiller pour régler ce problème, parce que là je ne trouve pas la solution après près de 4 jours d'essai et de recherche.
angus9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2011, 18h44   #6
Membre expérimenté
 
Inscription : octobre 2002
Messages : 654
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 654
Points : 552
Points : 552
Bonjour,
Juste pour que je comprenne bien.
Tu as une base de données sur un serveur distant par internet (Potentiellement à Lille), et tu essaies de l'utiliser depuis un client VB6 sur ton poste local disons à Dijon.
Est-ce bien cela?
Si c'est bien cela, ce n'est pas étonnant que tu aies des time out, et ou que tu perdes la connexion, tu as dans ce cas intérêt à tester ta connexion à chaque requete ou alors en cas d'erreur de n° que tu auras déterminé (connexion ne répond pas), tu réouvres ta connexions et tu réessaie ta requête.


En VB6, tu peux avoir le libelle d'une erreur dans err.Description et son numéro dans err.number ou, il me semble que les objets connexion ont une propriété erreur.

De plus pour des questions d'injection de code SQL, et de performance, tu as intérêt à utiliser des procédures stockées au lieu de construire ton SQL dynamiquement.

Cordialement
Soazig
soazig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2011, 18h57   #7
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 41
Points : 10
Points : 10
Par défaut Re

Oui je suis dans ce cas de figure.
Ok je comprends mieux !
Je te remercie
angus9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h56.


 
 
 
 
Partenaires

Hébergement Web