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

WinDev Discussion :

Connexion à une autre base de données [WD19]


Sujet :

WinDev

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 365
    Points : 176
    Points
    176
    Par défaut Connexion à une autre base de données
    Bonjour à tous,
    j'ai développé une application de gestion de tickets que nous utilisons en interne. Un de nos clients dont nous nous occupons de la maintenance informatique souhaiterait utiliser le même genre d'application pour gérer les points rapides et nous transférer les tickets nécessitant plus d'expertise.

    J'ai adapté mon application et la base de données pour les besoins du client et j'aurais voulu savoir comment gérer la connexion à ma base de données pour le transfert du ticket.

    dans l'initialisation du projet, je déclare ma connexion MaConnexion puis je fais un HOuvreConnexion(MaConnexion) et un HChangeConnexion("*",MaConnexion) pour la base de données de l'application.

    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
     
    MaConnexion est une Connexion
    MaConnexion..Utilisateur = login
    MaConnexion..MotDePasse = password
    MaConnexion..Serveur = monServeur
    MaConnexion..BaseDeDonnées = MaBase
    MaConnexion..Provider = hAccèsHFClientServeur
    MaConnexion..Accès = hOLectureEcriture
    MaConnexion..OptionsCurseur = hCurseurClient
    SI PAS HOuvreConnexion(MaConnexion) ALORS
    	****** Erreur("Impossible de se connecter à la base de données.",HErreurInfo())
    FIN
    SI PAS HChangeConnexion("*",MaConnexion) ALORS
    	****** Erreur(HErreurInfo())
    FIN
    SI PAS HCréationSiInexistant("*") ALORS
    	****** Erreur(HErreurInfo())
    FIN

    lorsque je veux faire le transfert, je déclare une nouvelle connexion MaConnexion2, je fais un HOuvreConnexion(MaConnexion2) puis je déclare le fichier externe dans lequel je veux ajouter mon enregistrement
    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
     
    requete est une chaine
    req est une source de données
     
    MaConnexion2 est une Connexion
    MaConnexion2..Utilisateur = login2
    MaConnexion2..MotDePasse = password2
    MaConnexion2..Serveur = monServeur
    MaConnexion2..BaseDeDonnées = maBase2
    MaConnexion2..Provider = hAccèsHFClientServeur
    MaConnexion2..Accès = hOLectureEcriture
    MaConnexion2..OptionsCurseur = hCurseurClient
    SI PAS HOuvreConnexion(MaConnexion2) ALORS
    	Erreur("impossible d'ouvrir la connexion",HErreurInfo())
    FIN
     
    HDéclareExterne("Interventions.fic","LocInterventions",MaConnexion2)
    requete = "INSERT INTO LocInterventions (Sujet) VALUES ('Test')"
    HExécuteRequêteSQL(req,requete)
    HFermeConnexion(MaConnexion2)
    Lorsque j'exécute mon code, j'ai l'erreur "Erreur interne à la DLL WDSQL" lors de l'exécution du HExecuteRequeteSQL()

    Je voudrais savoir si je fais les choses correctement et d'où peut provenir le problème.

    je vous remercie
    Qui vit par le Troll périra par le Troll!

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 054
    Points : 9 394
    Points
    9 394
    Par défaut
    Tu ne testes pas le code retour de hDeclareExterne() ; c'est probablement sur cette instruction que ça plante.
    Surtout que la doc dit que le premier paramètre doit être un chemin complet, et tu mets un chemin 'partiel'. http://doc.pcsoft.fr/?3044204&lang=f...ion=01F210067f
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 365
    Points : 176
    Points
    176
    Par défaut
    Merci pour ta réponse,
    le HDeclareExterne() retourne 'Vrai'.
    Qui vit par le Troll périra par le Troll!

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Sans avoir testé, au feeling, je dirais qu'il faudrait :

    - faire un HchangeConnexion() pour spécifier que la requête doit s'exécuter sur l'autre connexion car sinon, de ce que je comprends de votre code, au moment de l'appel ce n'est pas la bonne connexion
    - Si vous ne voulez/pouvez pas faire le HChangeConnexion(), spécifier la connexion dans le HExecuteRequeteSQL()

    Cordialement.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 365
    Points : 176
    Points
    176
    Par défaut
    Bonjour,
    je vous remercie pour vos réponses.

    J'ai fait un HChangeConnexion et ça a fonctionné.

    Ne pas oublier une fois l'enregistrement terminé de rechanger la connexion pour se remettre sur la base principale.
    Qui vit par le Troll périra par le Troll!

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

Discussions similaires

  1. Réponses: 28
    Dernier message: 27/04/2008, 17h05
  2. Connexion à une autre base de donnée Access
    Par Pitou5464 dans le forum Access
    Réponses: 4
    Dernier message: 12/09/2006, 12h25
  3. [SQL]Select dans une table d'une autre base de données
    Par Didouille dans le forum Access
    Réponses: 3
    Dernier message: 21/12/2005, 09h00
  4. Réponses: 2
    Dernier message: 16/11/2005, 13h41
  5. copier une table vers une autre base de données
    Par Herveg dans le forum Oracle
    Réponses: 3
    Dernier message: 11/01/2005, 14h20

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