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 :

exécution d'une fonction windev selon le nombre de paramètres


Sujet :

WinDev

  1. #1
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 231
    Points : 67
    Points
    67
    Par défaut exécution d'une fonction windev selon le nombre de paramètres
    Salut tout le monde; apparemment c'est pas mon jour :
    aprés avoir programmer une méthode qui selon le nombre de paramètre me fournie la requete sql (exemple :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from client where %1=%2
    ... ) adéquate je me trouve obliger de réécrire la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HExécuteRequêteSQL(sdSource,ChaîneConstruit(szReq,param1,param2))
    n fois; tel que n est le nombre total de mes paramètres.
    y'a t'il une solution pour programmer la fonction HExécuteRequêteSQL de façon à pouvoir l'exécuter selon le nombre de paramètres que j'aurai sans la réécrire n fois.

    merci d'avance.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour/Bonsoir,

    En fait, ton problème concerne plutôt la fonction ChaîneConstruit().

    Imaginons que ta procédure soit capable de gérer jusqu'à 5 paramètres pour la requête SQL (5 paramètres, c'est juste pour l'exemple).

    Code WLangage : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    PROCEDURE ExécuteRequêteParamétrée(SQL est une chaîne, vParam_1=Null, vParam_2=Null, vParam_3=Null, vParam_4=Null, vParam_5=Null)
     
    sTexteSQL est une chaîne
     
    sTexteSQL = ChaîneConstruit(SQL,vParam_1,vParam_2,vParam_3,vParam_4,vParam_5)
    HExécuteRequêteSQL("MaRequête", sTexteSQL)

    Après, tu peux l'appeler avec 0, 1, 2, 3, 4 ou 5 paramètres.
    Il faut juste que le nombre de paramètres soit cohérent avec les %1, %2, etc. de la chaîne de caractères fournie à ChaîneConstruit().

    Exemples:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ExécuteRequêteParamétrée("SELECT * FROM client WHERE %1=%2", "RUBRIQUE", "valeur")
     
    ExécuteRequêteParamétrée("SELECT * FROM %1 WHERE %2=%3", "FICHIER", "RUBRIQUE", "valeur")

  3. #3
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 231
    Points : 67
    Points
    67
    Par défaut
    Merci infiniment pour votre réponse
    je suis entrain de la tester et je crois bien que ça marche
    encore merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/01/2012, 16h48
  2. Stopper l'exécution d'une fonction au bout d'un certain temp
    Par Eagle959 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/03/2006, 19h16
  3. Réponses: 3
    Dernier message: 11/03/2006, 16h35
  4. Pause dans l'exécution d'une fonction
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/06/2005, 08h48
  5. Exécution d'une fonction...
    Par mickeliette dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/11/2004, 17h59

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