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 :

Variables de type avancé Connexion dans un tableau


Sujet :

WinDev

  1. #1
    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 Variables de type avancé Connexion dans un tableau
    Bonjour

    Nous tentons de piloter les connexions aux bases au moyen d'un tableau de connexions.
    Si globalement cela se passe bien, nous rencontrons des problèmes sensibles de portée et de nom.

    En effet, quand on ouvre ou décrit la connexion elle prends le nom de la variable de type avancé passé à la fonction... qui ne peut correspondre à un élément de tableau associatif.
    On a pensé passer par des prises de référence mais l'aide sur les types avancés indique que pour assurer des prise de référence avec l'opérateur '=' il faut utiliser un Variable dynamique de type avancé ou en passer par '<-'.
    Bref identifier une connexion pas un nom quand on utilise un tel tableau est une synécure...

    En outre on ne peut affecter une variable connexion dynamique...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    PROCEDURE AAA_Lit(pCnx est une Connexion,pNom est une chaîne = "AAA") : booléen
    SI tConnexions[pNom]..Vide  ALORS RENVOYER Faux
    pCnx <- tConnexions[pNom] // <- ne passe pas
    RENVOYER Vrai 
     
    // idem pour ouvrir la connexion
    PROCEDURE AAA_Ouvre(pNom est une chaîne = "AAA") : booléen
    SI tConnexions[pNom]..Vide  ALORS RENVOYER Faux
    lCnx est une connexion <- tConnexions[pNom]
    HOuvreDonnexion(lCnx)  // <- la connexion est toujours lCNX, on ne peut réutiliser la fonction pour une autre connexion
    RENVOYER Vrai
    En gros comment faire correspondre le nom identifiant à la connexion ?

  2. #2
    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
    Bonjour,

    avez-vous essayer de passer par un tableau de structure ?
    Dont la structure serait composé un membre de type connexion et un membre de type chaine ?

    Peut-être que WD s'en sort mieux comme cela ? (je vous l'accorde cela revient à votre tableau associatif... mais les voix de WD sont parfois impénétrable )

  3. #3
    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
    Salut Ry_Yo

    En effet, c'est la voie que nous explorons avec, je vous le laisse comprendre, une grosse difficulté de pointeurs car nous avons évidement géré cela dans des classes histoire de ne laisser au développeur/utilisateur que la partie utile.
    Mais nous y sommes presque.

    En toute cas, un constat : la documentation du type connexion ne stipule pas un grand nombre de limitations !
    En gros, on n'a pas la main sur ce type.

    L'encapsulation dans une structure permet effectivement le transport de la référence à travers la couche objet.
    En ajoutant le nom de la connexion à la structure (la fameuse chaine) on arrive presque à effectuer la manipulation souhaitée à savoir adresser la bonne connexion sur son nom.

    MAIS

    HOuvreConnexion perd le provider (et provoque une erreur) quand on lui fourni la variable de type connexion alors que celle ci contient bien le provider HyperFileClientServeur !
    Notons que :
    - le HDécritConnexion qui précède passe très bien.
    - passer le nom de la connexion provoque une erreur de code 0 (pas d'erreur)
    - par une description en donnant tous les paramètres n'est pas possible : la propriété mot de passe n'est pas accessible par programmation (merci le debugueur à distance)

    Bref : après deux jours sur le sujet le problème tourne sur lui même !
    Nos quatres versions seront transmis au ST mais cela va être coton d'isoler le problème dans un composant conséquent...

    Conclusion : en attendant, on va compéter la structure en y adjoignant les membres équivalents à ceux de la variable de type avancé Connexion et l'abandonner.
    Nous n'oublierons pas un joli mécanisme sur les mots de passe et zou.
    A la création de ce type cela était possible mais a malheureusement ouvert des trous de sécurité qui ont été comblés... en dénaturant complètement l'utilisation de ce type.

Discussions similaires

  1. Suppression des doublons dans une variable de type tableau
    Par damsmut dans le forum Général VBA
    Réponses: 2
    Dernier message: 23/07/2019, 10h36
  2. Réponses: 4
    Dernier message: 09/01/2011, 13h11
  3. Renommer des type File inclus dans un tableau de File
    Par kavdo34 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 17/02/2010, 14h07
  4. Extraire variables d'un fichier texte dans un tableau
    Par coincoin22 dans le forum Flash
    Réponses: 0
    Dernier message: 11/11/2008, 16h52
  5. Différents type de dimensions dans un tableau
    Par deniooo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/07/2008, 15h48

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