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 :

Créer une table mémoire. [WD25]


Sujet :

WinDev

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut Créer une table mémoire.
    Bonjour à tous,

    Je viens encore vous demander votre aide car une subtilité m'échappe. J'espère que je vais utiliser les bons termes parce que j'ai du mal en ce moment.

    Dans mon projet, j'ai un fichier de données provenant d'une BDD MySQL, je n'ai pas le choix.

    J'ai créé une procédure globale dans mon projet.

    Je souhaiterais que cette procédure aille rechercher une valeur dans un fichier de donnée qui s'appelle "base_parametre" qui contient deux colonnes : "parametre" et "valeur".

    Je n'ai pas trouvé l'option qui me permet de faire une recherche directe dans mon fichier de donnée.
    Exemple : rechercher le terme "version_autorisee" dans la colonne "parametre" et affecter la valeur de la colonne "valeur" dans une variable "version_autorisee".

    J'ai regarde dans la doc, fais des recherches sur le net et il semble qu'il me faille créer un champ table et que je lui affecte mon fichier de donnée.
    Je sais le faire et gérer ma recherche mais étant dans une procédure globale, j'ai lu qu'il existait un champ table mémoire, chargeant le fichier de donnée dans une table en mémoire.

    Je n'ai pas trouvé comment créer ce genre de table par programmation.

    Quelqu'un pourrait-il m'aider ?

    Merci d'avance pour vos réponses.

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    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 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Qu'est-ce que tu sais faire ?

    Tu dis que ta base de donnée est MySQL, est-ce que tu sais afficher (fonction Trace) tout le contenu de ta base de données ?
    Quelle serait ta méthode pour ça ? Quel serait le code pour faire ça ?
    Je te laisse dire ta méthode, parce qu'il y a différentes philosophie, et je ne veux pas t'imposer ma philosophie.
    Ensuite, on va dérouler, pas à pas.

    Et quand tu auras bien appris, tu iras expliquer ici (je blague, mais pas totalement ...)
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut
    Merci de ta réponse.

    Je ne suis pas sûr de savoir afficher ma base de donnée. Je crois que je pêche déjà à ce niveau.

    J'ai suivi de nombreux cours vidéos qu'on peut trouver sur le net mais la plupart s'attache à créer un champ table et à y insérer les données.

    J'ai déjà effectué cette programmation car j'avais besoin de créer un champ de saisie avec vérification des doublons "en temps réel".

    Pour ce faire, j'ai créé une table en dehors de ma fenêtre (état invisible) et à chaque modification, je cherchais le terme saisi dans la colonne concernée.

    Mais comme je souhaite le faire dans une procédure globale que je pourrai appelé depuis n'importe quelle fenêtre, je ne sais pas comment mettre ça en œuvre.

    Pour la philosophie, peut m'importe, je ne suis pas la pour critiquer mais pour apprendre et comprendre pour ne plus embêter mon monde avec mes soucis (qui sont, j'en suis sûr du niveau débutant).

    Je suis preneur de ta philosophie si tu veux bien me la partager.

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut
    Pour aller plus loin, je reprend un projet que j'avais développé par le passé.

    Je n'utilisais pas d'analyse et passais tout via des requêtes MySQL. Ca fonctionnait mais j'ai pensé que d'avoir directement mes fichiers de données dans mon projet était probablement plus rapide et m'offrait plus de possibilités.

  5. #5
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Pourquoi ne pas passer par une requête (full text éventuellement) sur les colonnes désirées ?
    A la volée :
    REQ_RechercheVersion
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT
         Valeur AS Version
    FROM
         Base_Parametre
    WHERE
         Paramètre={pCondition}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    FONCTION RechercheVersion(sCondition est chaine) :Chaine
     
    REQ_RechercheVersion.pCondition=sCondition
    HExécuteRequête(REQ_RechercheVersion)
     
    RENVOYER REQ_RechercheVersion
     
    CAS ERREUR
    .....
    CAS EXCEPTION
    ...
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    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 057
    Points : 9 396
    Points
    9 396
    Par défaut
    La philosophie de Voroltinquo me plait bien.
    C'est propre, c'est du travail de professionnel. Moi j'aurais fait beaucoup moins professionnel, mais on va s'aligner sur la même philosophie. (c'est lui qui s'est embêté à taper le plus compliqué !)

    Tu disais que tu avais ta base de donnée dans mysql, et que les fichiers n'étaient pas forcément tous décrits dans l'analyse du projet.
    Pour la suggestion de Voroltinquo, il faut que le fichier qui nous intéresse soit dans l'analyse du projet.

    Je considère que ça y est, l'analyse est à jour. A priori tu maitrises cette étape.

    Voroltinquo propose de créer une requête : Dans le menu Fichier // Nouveau // Requete ... et il faudra appeler cette requete REQ_RechercheVersion pour reprendre les mêmes notations que Voroltinquo.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut
    Merci à vous deux,

    Je vais essayer. Comme je le disais, dans mon précédent projet, j'utilisais un système de table "invisible" que j'alimentais via une requête. L'avantage, je trouve est que cela me permettait de travailler directement avec la fonction TableRecherche par exemple, je trouvais ça rapide.

    C'est pour cela que j'ai recherché comment créer une table par programmation, et d'après la documentation, il semble que ce soit possible mais ce n'est pas documenté. C'est agaçant...

  8. #8
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    La fonction qui permet d'effectuer ce que tu désire est TableAjouteLigne.
    Il suffit de parcourir ta table Base_Parametre séquentiellement.

    Toutefois, dans ton cas, le plus simple serait de baser ton champ table sur la table Base_Paramète (Table fichier.) Moins on a de boucles mieux on se porte, surtout si on doit récupérer les données sur un serveur. Si tu as 1000 tuples, pour remplir ton champ table mémoire, il faudra 1000 accès serveur.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut
    Dans la continuité de ma question, afin de me permettre d'essayer de nouvelles techniques de codage, existe-t-il un équivalent à print_r (en php) sous windev.

    J'ai essayé avec Trace() mais cela ne fonctionne pas forcément.

    J'avais essayé ce bout de code mais cela ne me retourne rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    PROCÉDURE verification_version()
     
    taTest est un tableau de chaînes
    FichierVersTableau(taTest,parametre,nom_parametre)
    Trace(taTest)
    Avec cette combine, je pensais pouvoir récupérer l'ensemble de mes valeurs dans un tableau associatif et récupérer les infos ensuite via leur index.

  10. #10
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    Trace est utilisé pour le debugage.
    Celà n'affichera rien une fois l'EXE créé. Pour afficher l'info à l'écran, il faut utiliser Info.
    Fichier vers tableau concerne un tableau de structures ou de classes avec les contraintes de nom de membres expliqués dans la donc (à moins de mapper ta classe)
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  11. #11
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    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 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Trace fonctionne même une fois l'exe créé. Ce n'est pas joli-joli ; dans l'esprit, ça devrait être réservé au débuggage. Mais ça fonctionne aussi avec un exe.

    Par contre, dans ton essai, tu fais trace (TaTest). Et TaTest, c'est une structure. Trace accepte seulement une chaine ou un nombre, pas une structure
    Donc Trace (TaTest.parametre, TaTest.valeur) .
    Là, Trace() t'affichera la dernière ligne lue dans le fichier TaTest. (une seule ligne)
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  12. #12
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Trace fonctionne même une fois l'exe créé.
    J'avoue avoir appris quelque chose aujourd'hui. Cela peut être gênant, surtout que dans certaines instructions Trace je met des noms d'oiseau.
    Normalement je les supprime sauf celles en mode test auto, qui associées à l'option trFichier me servent de log.
    Il va falloir à penser à ajouter un TraceDébut(trDésactive) en init de projet.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  13. #13
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    J'avoue avoir appris quelque chose aujourd'hui. Cela peut être gênant, surtout que dans certaines instructions Trace je met des noms d'oiseau.
    Normalement je les supprime sauf celles en mode test auto, qui associées à l'option trFichier me servent de log.
    Il va falloir à penser à ajouter un TraceDébut(trDésactive) en init de projet.
    L'autre possibilité est de surcharger la fonction et d'y ajouter un test avec EnModeTest() (ou un paramètre d'un fichier de config pour afficher ou non les traces)

  14. #14
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    En effet, c'est aussi une idée.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  15. #15
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut
    Re-bonsoir Messieurs,

    Dans un premier temps, je voulais vous remercier pour le temps que vous me consacrez.

    Je suis à deux doigts du suicide... Je n'arrive à rien... Enfin si mais pas à ce que je souhaite... Je me suis cogné des heures et des heures de videos, de documentation... mais je n'ai pas trouvé mon bonheur. Je me suis peut-être mal expliqué précédemment et en plus je ne maitrise absolument pas Windev...

    Je vais arrêter de parler PCSoft, je crois qu'ils sont bar... bref... Une table est une table pas un fichier... Je vais parler un langage que je connais, ce sera plus simple.
    Revenons en à nos moutons...

    J'ai toujours ma table MySQL "base_parametre" qui contient deux colonnes : "parametre" et "valeur". Jusque la, vous me suivez...

    J'ai un peu évolué dans mon idée initiale mais le problème ne change pas. De ce fait, j'ai une autre question :

    En php, il m'arrive de passer des tables de paramètres dans un tableau multidimensionnel et d'aller ensuite appeler la valeur souhaitée avec qqchose du style :
    $tableau[0][0]. Cela est-il possible avec windev ?

    Je pourrais insérer les données de ma base dans un tableau et ensuite faire une recherche dans ce tableau ?

    Merci pour vos réponses.

  16. #16
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut
    J'ai un peu avancé dans ma recherche il me semble... En cherchant je suis tombé sur FichierVersTableau... et cet exemple. J'ai donc créé ma classe dans mon projet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Mesparametres est une Classe
    id est une chaîne
    parametre est une chaîne
    valeur est une chaîne
    FIN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    PROCEDURE test() 
    tabtest est un tableau de Mesparametres
     
    HOuvre(base_parametre)
    FichierVersTableau(tabtest, base_parametre)
    Info(tabtest.Occurence)
    Lorsque j'appelle ma procedure test()... dans une fenetre test... La fenêtre info me retourne 8... C'est génial... C'est exactement le nombre de ligne de ma table donc je me dis que je tiens une piste.

    La question est comment exploiter la suite... Parce que la POO, je vois ce que c'est mais de la à dire que je maitrise...

  17. #17
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    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 057
    Points : 9 396
    Points
    9 396
    Par défaut
    @Voroltinquo
    Surcharger la fonction trace() , c'est ce que je fais aussi. Avec dans une fenêtre de type 'Configuration', une case à cocher pour réactiver les trace() à la demande.

    @Trebor
    Je pense que la philosophie de Voroltinquo était trop ambitieuse, trop professionnelle. Moi, je suis un bidouilleur, et voilà comment j'aurais fait.

    Tout est dans le code ci-dessous ... il n'y a pas besoin d'analyse, pas besoin de créer des requêtes (des fichiers .WDR)

    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
    37
    38
    39
    40
    cnx est une connexion
    irc est un entier 
    sreq est une chaine
    sd est une source de données
     
    cnx.utilisateur = "???"
    cnx.motdepasse = "???"
    cnx.provider = hODBC   // Pas complètement sûr ..
    irc=houvreconnexion(cnx)
    si irc = faux alors 
       erreur ( " erreur ouverture connexion " , herreurinfo() )
       renvoyer -1
    sinon
       info ( " connexion correcte !" )  
    fin
    sreq = [
    SELECT
         Valeur AS Version
    FROM
         Base_Parametre
    WHERE
         Paramètre='%1'
    ]
    sreq = chaineconstruit ( sreq , "???" ) 
    irc = hexecuterequeteSQL(sd,  cnx, hRequeteSansCorrection, sreq)
    si irc = faux alors 
      erreur  ( "bug requete" , herreurinfo() )
      renvoyer -1
    sinon
      info ( " ok, on avance, requete exécutée ")
    fin
     
    hlitpremier(sd )
    si hendehors alors 
       avertissement ( " la requete n'a renvoyé aucune ligne , surprenant ")
    sinon 
       info ( " Valeur trouvée "  , sd.version )
    fin
     
    hferme(sd)
    J'ai mis des ??? quand je ne savais pas quoi mettre ; les identifiants de connexion à MySql par exemple.
    Je tape tout ça directement sur le forum, ce n'est pas testé du tout !

    Il faut d'abord se connecter à la base MySQL. Je ne suis pas sûr du tout des paramètres que j'ai mis. Il faudra sûrement tatonner. Tant que le programme n'affiche pas le message 'connexion correcte', pas la peine de regarder la suite.

    Pour la suite, l'exécution de la requete PUIS la lecture du résultat, je suis plus confiant.

    PS : tu parles d'heures et d'heures de vidéos.
    C'est probablement un côté générationnel, mais je réponds : STOP.
    La doc de Windev est TRES BIEN FAITE. Windev a des défauts, je ne suis pas en train de faire de la pub..., mais le principal point fort de windev, c'est sa doc. Je crois que je n'ai jamais regardé la moindre video d'aide sur Windev.

    Ici, les 2 commandes essentielles sont hOuvreConnexion() et hExecuteRequeteSQL(). Bon, comment on devine ça, c'est effectivement pas toujours évident.
    Mais, quand je dis un peu plus haut qu'il va falloir tatonner pour se connecter à MySQL, la page d'aide ici va beaucoup aider ! Tout y est décrit en détail.
    Et pareil pour l'aide de hExecuteRequeteSQL
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  18. #18
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    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 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Bon, j'ai mis tellement de temps à taper tout ça... et dans l'intervalle tu as bien avancé.

    Continuons sur ce que tu as fait (et oublie mon message précédent) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    PROCEDURE test() 
    tabtest est un tableau de Mesparametres
    i est un entier 
     
    HOuvre(base_parametre)
    FichierVersTableau(tabtest, base_parametre)
    Info(tabtest.Occurence)
    pour i = 1 _a_ tabtest.occurence
         trace ( "ligne n°" + i + "  id=" tabtest[i].id + "  param="+ tabtest[i].parametre + "  val="+tabtest[i].valeur )
         si tabtest[i].parametre = "LA VALEUR CHERCHEE" alors 
            info ( " Valeur trouvee"   , tabtest[i].valeur )
            renvoyer ( tabtest[i].valeur )
        fin
    fin
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  19. #19
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    Note On va passer sur le fait que les membres doivent théoriquement être PRIVE, n'en déplaise aux puristes.

    Il faut d'abord déclarer un objet CMesParamètre
    e.g.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    clParamètre est un CMesParamètre
    Tu peux récupérer une "ligne" de ton tableau (e.g. la ligne 5) par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    clParamètre<-tabTest[5]
    Tu peux alors accéder aux membre de clParamètres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sMaValeur est chaine
     
    sMaValeur=clParamètre:Valeur
    Une autre solution, pour accéder au membre Valeur de la ligne 5 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sMaValeur est chaine
     
    sMaValeur=tabTest[5]:Valeur
    .

    Je m'attend à la question : "Comment récupérer les données du tuple qui a ID=8"

    Il faut utiliser TableauCherche (4° syntaxe ... à priori).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    nNoLigne est entier
     
    nNoligne=TableauCherche(tabTest,tcLinéaire,"ID",8)
    ATTENTION LE NOM DU/DES MEMBRE EST UNE CHAINE donc encadré par des doubles quotes
    Avec le n° de ligne on peut récupérer la valeur des membres comme expliqué plus haut
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  20. #20
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    PS : tu parles d'heures et d'heures de vidéos.
    C'est probablement un côté générationnel, mais je réponds : STOP.
    La doc de Windev est TRES BIEN FAITE. Windev a des défauts, je ne suis pas en train de faire de la pub..., mais le principal point fort de windev, c'est sa doc. Je crois que je n'ai jamais regardé la moindre video d'aide sur Windev.
    Je ne remet pas en question la qualité de la documentation, j'arrive en grande partie à me débrouiller avec j'ai d'ailleurs écris deux projets complet mais très simpliste qui fonctionne et font le boulot.
    Parfois, je trouve que les exemples manquent de clarté et j'ai cherché des explications en vidéo car un exemple didactique et plus parlant, je trouve, qu'un exemple papier. Tout est question de point de vue. J'apprécie d'avoir une démonstration pour comprendre les choses. Je suis devenu développeur amateur par obligation sinon, je m'en serais passé mais j'aime beaucoup finalement.

    Je me rends compte que je n'y connais rien en POO et qu'il me faut potasser cette partie. Le retour que tu m'as fait correspond à une méthode moins pro peut-être mais c'est celle que je comprends. D'ailleurs, je n'ai aucun soucis pour gérer mes connexions à mes bases MySQL. C'est le parcours d'une table, son mode d'accès qui change de PHP, c'est cette partie qui me manque terriblement.

    Je vais reprendre mon dev pour parvenir à mes fins, je sens qu'on approche...

    Vous qui pratiquez et maitrisez Windev, pouvez-vous me dire si il est possible d'appeler une table d'une fenêtre dans une autre fenêtre... Je m'explique :
    J'ai une fenêtre FEN_Affiche_PERSONNEL et une TABLE_PERSONNEL avec une COL_NOM
    J'ai une autre fenêtre RECHERCHE_PERSONNEL avec un champ de saisie est ce que je peux faire un appel à la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Résultat = TableCherche(FEN_Affiche_PERSONNEL.TABLE_PERSONNEL.COL_NomColonne, "ValeurRecherchée", rechercheIdentique)
    ou est-ce impossible...

    En tout état de cause, encore merci de toute l'aide que vous m'avez apporté.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Créer une table à partir d'une autre dans un script
    Par Dam)rpgheaven dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 24/06/2005, 10h55
  2. créer une table de folder
    Par bibifinal dans le forum MFC
    Réponses: 2
    Dernier message: 25/02/2005, 14h24
  3. Créer une table en VBA ?
    Par nicburger dans le forum Access
    Réponses: 11
    Dernier message: 16/02/2005, 15h15
  4. Réponses: 17
    Dernier message: 03/12/2004, 14h33
  5. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21

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