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 :

Accès fichier composant interne


Sujet :

WinDev

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 126
    Points : 73
    Points
    73
    Par défaut Accès fichier composant interne
    Bonjour,

    J'utilise le composant interne GPU, et je souhaiterai effectuer des requêtes depuis l'appli en utilisant un des fichiers du composant.
    Mais je ne souhaite pas faire un HdeclareExterne car cela m'oblige à indiquer le mot de passe du fichier dans le code et à gérer des droits d'accès sur le serveur.

    J'ai essayer de créer une requête dans le composant interne (CI) mais lorsque je veux la lance depuis l'appli un message d'erreur me dit qu'elle appartient à un CI avec une analyse et ne peut être lancée en dehors de celui-ci...
    J'ai essayé en créant un fonction globale dans le composant qui renvoi ou manipule une source de donnée ca ne marche pas.

    Je suis à cours d'idée, quelqu'un a-t-il une solution svp ?

  2. #2
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 133
    Points : 204
    Points
    204
    Par défaut
    la mon ami la solution est simple.
    Tu déclare une procédure globale dans le composant interne, tu y met le traitement de ta requête et tu fait appel à cette procédure depuis le code de ton projet.

    moi actuellement j'ai un problème à l'inverse alors si tu veut m'aider: http://www.developpez.net/forums/d15...nterne-projet/

    Bonne journée.

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 126
    Points : 73
    Points
    73
    Par défaut
    Merci pour ta réponse darkWD.
    Je fait déjà cela lorsque j'ai des traitements particuliers à faire, mais là j'ai besoin, dans mon projet principal, de faire une requête SQL mélangeant des fichiers de mon analyse principal et le fichier GPU_Utilisateur...

    ce que je cherche à faire en gros c'est récupérer une source de donnée issue du CI.. mais apparemment ce n'est pas possible, tout comme l'échange de sources de données entre thread par exemple snif...

    pour l'instant le seul moyen que j'ai trouvé c'est de faire un Hversfichier depuis une globale du GPU, et de récupérer ce fichier depuis le projet principal mais niveau sécu je ne trouve pas ca top car le fichier reste créé pendant la durée d'ouverture...

  4. #4
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 133
    Points : 204
    Points
    204
    Par défaut
    j'avoue que c’était mieux quand le groupeware n’était pas un composant interne.

    il se peut que tu puisse faire autre chose mais ça dépend du cas et le traitement risque de devenir plus long et la requête plus complexe.

    par exemple si tu cherche des fiche client en fonction du nom de l'utilisateur qui l'a traité
    tu veut faire : "SELECT * FROM client,GPU_Utilisateur WHERE client.id_conseille=GPU_Utilisateur.IDUtilisateur AND GPU_Utilisateur.Nom=%{param_nom}% AND GPU_Utilisateur.Prenom=%{param_prenom}%"

    la tu peut récupérer les id des utilisteur dont tu as besoin avec une procédure du genre recherche_utilisateur(nom, prenom) et les imbriquer dans ta requete sous forme de tableau ou liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mon_req_text est une chaine="SELECT * FROM client WHERE client.id_conseille IN ("+recherche_utilisateur(nom, prenom)+")"
    et la procedure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    PROCEDURE recherche_utilisateur(nom est une chaine, prenom est une chaine)
    tab_ids est un tableau de 0 entier
    hlitpremier(GPUUtilisateur)
    tantque pas hendehors(GPU_Utilisateur)
        SI contient(GPU_Utilisateur.Nom,Nom) ou contient(GPU_Utilisateur.Prenom,Prenom)
            tableauajoute(tab_ids,GPU_Utilisateur.IDUtilisateur)
        FIN
    FIN
     
    RETOUR TableauVersChaîne(tab_ids)
    je sais que c'est un peut limite mais avec ce genre de situation il est toujours envisageable de faire des folies, surtout avec windev.

    Bonne continuation et bon dev

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 126
    Points : 73
    Points
    73
    Par défaut
    Merci mais ce n'est pas possible, ma requête est trop complexe, c'est une double requête (imbriquée) avec pas mal de conditions donc ce n'est pas gérable.
    Pour l'instant je reste sur la solution de créer un fichier temporaire et qui sera détruit juste après le traitement donc niveau sécurité ça reste acceptable.

    Algo :
    -> Procédure globale GPU qui créé le fichier (dans c: ou autre rep temporaire) avec HversFichier
    -> Hdeclare externe du fichier dans appli principale
    ->traitement
    -> HannuleDeclaration
    -> suppression du .fic, .ndx,.mmo

    Je reste preneur si quelqu'un a un moyen de transférer une source de donnée entre un CI et l'appli principale...

  6. #6
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 133
    Points : 204
    Points
    204
    Par défaut
    en faite tu m'a inspiré le truque de la procédure stocké
    pourquoi tu ne fait pas une procédure stocké dans WDGPU dans laquelle tu met les hdeclareexterne et la requête pour ensuite récupérer le résultat?

    j'avoue que ça ne marchera probablement pas avec les table fichier mais je pense que ce sera mieux que d'exposer des données sensible.

    ou alors si tu veut utiliser ta méthode, tu peut faire un genre de doublant de la table GPU_Utilisateur dans le projet mais en crypté
    et comme ça tu modifie la table en doublant avec chaque modification de l'originale en y mettant des données crypté et ensuite les décrypter dans la requête (peut être avec une autre procédure stockée).

    ça semble un peut compliqué et ce ne sont que des idée donc à vous de voir.

  7. #7
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 126
    Points : 73
    Points
    73
    Par défaut
    en effet la procédure stockée serait une solution ultime mais je préfère l'éviter si possible car c'est assez lourd à gérer, pas mal de bugs. A chaque modification du code c'est une nouvelle version de l'analyse puis resynchro, et le debogage n'est pas pratique (si j'essaye de la lancer depuis windev ca plante windev systématiquement..)

    De plus le moteur HFSQL ne réagit pas pareil, par exemple certaines requête exécutées par une procédure stockée ne fonctionnent pas alors qu'elles fonctionnent depuis l'exécutable...

    En général je n'utilise les procédures stockée que pour des codes devant être lancés périodiquement (tous les matin à 6h par ex) afin d'éviter de créer une appli juste pour ça..

Discussions similaires

  1. Accès à un composant de Page.xaml depuis un fichier C#
    Par blepeign dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 15/01/2009, 13h00
  2. Packaging war, accès fichier interne librairie jar
    Par Didine981 dans le forum Maven
    Réponses: 6
    Dernier message: 27/08/2008, 17h21
  3. [tomcat]acces fichier dans contexte
    Par krollette dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 23/01/2004, 14h17
  4. pb service NT / accès fichier
    Par gord's dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 24/07/2003, 17h20
  5. [Kylix] accés fichiers
    Par sdoura dans le forum EDI
    Réponses: 4
    Dernier message: 08/10/2002, 19h33

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