IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

"Echec de liaison" Sql server


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 41
    Points : 25
    Points
    25
    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 : 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
    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

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    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...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 41
    Points : 25
    Points
    25
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 41
    Points : 25
    Points
    25
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub ChargeInfo()
    , est stoppée.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 41
    Points : 25
    Points
    25
    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.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    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

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 41
    Points : 25
    Points
    25
    Par défaut Re
    Oui je suis dans ce cas de figure.
    Ok je comprends mieux !
    Je te remercie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Liaison Access-SQL Server
    Par Marc_27 dans le forum IHM
    Réponses: 4
    Dernier message: 28/04/2011, 15h05
  2. Erreur Liaison entre SQL Server (fichier MDF) et VB.net
    Par alex_dev231 dans le forum Accès aux données
    Réponses: 4
    Dernier message: 06/11/2010, 19h58
  3. Liaison C++ / SQL server 2005
    Par chwem dans le forum C++
    Réponses: 2
    Dernier message: 16/03/2010, 15h29
  4. Echec connexion ODBC vers SQL Server
    Par *.Har(d)t dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 02/02/2009, 16h11
  5. Liaison entre SQL Server 2000 et VB 6.0
    Par yesorno dans le forum Développement
    Réponses: 1
    Dernier message: 14/09/2008, 21h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo