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 :

Passage de connexion à un composant


Sujet :

WinDev

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 128
    Points : 170
    Points
    170
    Par défaut Passage de connexion à un composant
    Salut à tous,

    J'ai créé un composant qui fait une connexion à un serveur HyperFileSQL.

    Ce composant est utilisé par une application qui utilise aussi un serveur HFSQL et je voudrais que le composant utilise la même connexion que son application hôte.

    Je passe donc la connexion en paramètre et fais un HChangeConnexion au niveau du composant mais voilà, il me dit que la connexion est inconnue.

    De même, en passant l'ensemble des valeurs (ce qui n'est pas super pratique), il m'est impossible de passer le mot de passe (ce qui peut se comprendre)...

    Quelqu'un aurait une idée?

    Merci d'avance

  2. #2
    R&B
    R&B est déconnecté
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2005
    Messages : 571
    Points : 1 263
    Points
    1 263
    Par défaut
    j'imagine que vous ne parvenez pas à passer la variable structurée de type connexion à votre composant...

    une solution serait alors de la sérialiser afin que ce dernier assure sa propre connexion après dé-sérialisation des informations.
    On peut simplement sérialiser en mettant les paramètres dans une chaine avec séparateurs.

    Ensuite, la gestion de la connexion à la base en mode partagé (avec les composant) ou pas dépendant de l'architecture de l'accès aux données par vos composants, on ne peut guère allez plus loin avec ces informations.

    Une autre possibilité est de passer simplement le nom de la connexion qui sert comme identifiant au projet en exécution. Cela devrait passer aussi et plus simplement.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 128
    Points : 170
    Points
    170
    Par défaut
    Citation Envoyé par R&B Voir le message
    j'imagine que vous ne parvenez pas à passer la variable structurée de type connexion à votre composant...

    une solution serait alors de la sérialiser afin que ce dernier assure sa propre connexion après dé-sérialisation des informations.
    On peut simplement sérialiser en mettant les paramètres dans une chaine avec séparateurs.

    Ensuite, la gestion de la connexion à la base en mode partagé (avec les composant) ou pas dépendant de l'architecture de l'accès aux données par vos composants, on ne peut guère allez plus loin avec ces informations.

    Une autre possibilité est de passer simplement le nom de la connexion qui sert comme identifiant au projet en exécution. Cela devrait passer aussi et plus simplement.
    Merci pour cette réponse.

    J'ai essayé la sérialisation mais j'obtiens l'erreur suivante :
    Vous avez appelé la fonction Sérialise.
    Le passage du paramètre 1 a provoqué une erreur.
    Un élément de type 'chaîne ANSI' ne peut pas être converti vers le type 'sérialisable'.
    Pour le moment, ca fonctionne sans encombre si je passe chacun des paramètres à une fonction d'initialisation et que de l'autre côté je reconfigure ma connexion mais ce que j'aimerai, et qui simplifierai grandement les choses c'est de passer uniquement la connexion à ma procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MaConnexion est une connexion
    PG_INITIALISATION(MaConnexion)
    Et PG_INITIALISATION, dans le composant, ressemblerait à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PROCEDURE PROTEGEE PG_INITIALISATION(NouvelleConnexion)
    HChangeConnexion("*",NouvelleConnexion)
    Mais si je fais ca, il me dit simplement que la connexion 'MaConnexion' est inconnue...

    D'autres idées?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    Bonjour à tous,
    Citation Envoyé par Simeonn Voir le message
    Salut à tous,

    J'ai créé un composant qui fait une connexion à un serveur HyperFileSQL.

    Ce composant est utilisé par une application qui utilise aussi un serveur HFSQL et je voudrais que le composant utilise la même connexion que son application hôte.

    Je passe donc la connexion en paramètre et fais un HChangeConnexion au niveau du composant mais voilà, il me dit que la connexion est inconnue.

    De même, en passant l'ensemble des valeurs (ce qui n'est pas super pratique), il m'est impossible de passer le mot de passe (ce qui peut se comprendre)...

    Quelqu'un aurait une idée?
    Si on veut utiliser dans un composant externe, une connexion définie dans le projet hôte, alors il faut que le composant externe et le projet hôte utilisent le même contexte hyperfile.
    Mais si le composant externe utilise un contexte hyperfile indépendant du contexte hyperfile du projet hôte, alors c'est normal que ce composant ne puisse pas utiliser les "objets" hyperfile du projet hôte.

    Voir "Droits d'accès du composant sur les éléments de l'application utilisant le composant" ici http://doc.pcsoft.fr/fr-FR/?creer_ge...posant_externe.

    Et si le composant utilise sa propre analyse, alors tu n'as pas le choix.
    Il faut que ce soit le composant qui crée une nouvelle connexion à partir des informations que tu lui passes en paramètre, connexion qui sera ensuite utilisée notamment par HChangeConnexion..


Discussions similaires

  1. Réponses: 4
    Dernier message: 16/08/2011, 13h19
  2. Passage de dbXpress aux composants ADO, INSERT INTO bugue
    Par WebPac dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/11/2006, 16h57
  3. [VB6] Connexion avec composant Winsock
    Par Sytchev3 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 03/04/2006, 14h07
  4. passage par variable et composant
    Par cfalcot dans le forum Composants VCL
    Réponses: 7
    Dernier message: 22/02/2006, 16h47
  5. [FLASH COM] Connexion de composants communication
    Par zaoueche dans le forum Flash
    Réponses: 3
    Dernier message: 31/01/2005, 12h57

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