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 :

Erreur Requete par programmation [WD19]


Sujet :

WinDev

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2013
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2013
    Messages : 191
    Points : 472
    Points
    472
    Par défaut Erreur Requete par programmation
    Bonjour,

    J'ai une requête que voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Reservation SET Reservation.dDebut = {dDebut}, Reservation.dFin = {dFin},Reservation.Individu = {ID_Individu} WHERE Reservation.IDReservation = {idReservation}
    Qui s'exécute parfaitement quand je lance la requête avec F9, par contre lorsque je fais appel a cette requête par programmation. Rien n'est modifié dans ma base de donnée et je n'ai aucun log d'erreur.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Info(ChaîneConstruit("UPDATE Reservation SET Reservation.dDebut = %1, Reservation.dFin = %2,Reservation.Individu = %3 WHERE Reservation.IDReservation = %4",rdvEdité.DateDébut,rdvEdité.DateFin,rdvEdité.Titre,rdvEdité.ID))
    			SI PAS HExécuteRequête(REQ_UpdateRDV,hRequêteDéfaut,rdvEdité.DateDébut,rdvEdité.DateFin,rdvEdité.Titre,rdvEdité.ID) ALORS
    				Erreur(ErreurInfo(errComplet))
    			FIN
    Le dialogue info me retourne pourtant les bonnes valeurs et la HExécuteRequête renvoie vrai.

    Auriez-vous une solution à mon problème ? Merci d'avance.

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

    As-tu essayé avec un HExécuteRequêteSQL et le code retourné par ton ChaineConstruit?

    Je ne sais pas trop comment est ton soft mais c'est normal que l'individu soit repéré par un titre? (ca peut être logique, suivant ton code...)

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2013
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2013
    Messages : 191
    Points : 472
    Points
    472
    Par défaut
    Bonjour Simeonn,

    Idem avec HExecuteRequêteSQL ...
    Pour le titre, c'est normal, je fais un planning, je stock l'ID_Individu dans le titre du Rendez-vous, et le nom dans le contenu.

  4. #4
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Points : 52
    Points
    52
    Par défaut
    Bonjour,

    au lieu de la constante hRequêteDéfaut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI PAS HExécuteRequête(REQ_UpdateRDV,hRequêteDéfaut,rdvEdité.DateDébut,rdvEdité.DateFin,rdvEdité.Titre,rdvEdité.ID) ALORS
    	Erreur(ErreurInfo(errComplet))
    FIN
    J'essaierai avec un hModifieFichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI PAS HExécuteRequête(REQ_UpdateRDV,hModifieFichier,rdvEdité.DateDébut,rdvEdité.DateFin,rdvEdité.Titre,rdvEdité.ID) ALORS
    	Erreur(ErreurInfo(errComplet))
    FIN
    Cordialement,

    Bitwin

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2013
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2013
    Messages : 191
    Points : 472
    Points
    472
    Par défaut
    Bonjour bitwin,

    De même, rien ne change avec un hModifieFichier :/

  6. #6
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Points : 52
    Points
    52
    Par défaut
    Re,

    Je pense qu'il y a un soucis concernant les types de champs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Info(ChaîneConstruit("UPDATE Reservation SET Reservation.dDebut = %1, Reservation.dFin = %2,Reservation.Individu = %3 WHERE Reservation.IDReservation = %4",rdvEdité.DateDébut,rdvEdité.DateFin,rdvEdité.Titre,rdvEdité.ID)
    Pour moi, il manque la différenciation entre des chaines et des numériques.

    Cordialement,

    Bitwin

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2013
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2013
    Messages : 191
    Points : 472
    Points
    472
    Par défaut
    J'ai utilisé la fonction Val() pour transformer mes numériques sous forme de chaine de caractère en vrai type numérique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Info(ChaîneConstruit(ChaîneConstruit("UPDATE Reservation SET Reservation.dDebut = %1, Reservation.dFin = %2,Reservation.Individu = %3 WHERE Reservation.IDReservation = %4",rdvEdité.DateDébut,rdvEdité.DateFin,Val(rdvEdité.Titre),Val(rdvEdité.ID))))	
    SI PAS HExécuteRequête(REQ_UpdateRDV,hModifieFichier,rdvEdité.DateDébut,rdvEdité.DateFin,Val(rdvEdité.Titre),Val(rdvEdité.ID)) ALORS
    	Erreur(ErreurInfo(errComplet))
    FIN
    J'obtiens :
    UPDATE Reservation SET Reservation.dDebut = 20140508000000, Reservation.dFin = 20140508120000, Reservation.Individu = 20 WHERE Reservation.IDReservation = 107

    Dans ma table j'ai bien une ligne
    nbEnr:6 IDReservation :107 ID_Vehicule:47 Individu:2 dDebut:08/05/2014 00:00:00 dFin:08/05/2014 12:00:00
    Mais elle ne change toujours pas après l’exécution de ma requête :/
    Individu reste a 2.

  8. #8
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Points : 52
    Points
    52
    Par défaut
    Et avec la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Reservation SET Reservation.dDebut = '20140508000000', Reservation.dFin = '20140508120000', Reservation.Individu = 20 WHERE Reservation.IDReservation = 107
    En considérant que les champs sont typés de la façon suivante :
    dDebut et dFin sont des date/heure
    Individu et IDReservation sont des numériques ...

    Sinon, pour faire un test, lancer la même requête en mode SELECT pour vérifier la bonne lecture de l'enregistrement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT Reservation.Individu
    FROM Reservation
    WHERE Reservation.IDReservation = 107
    -- La suite est optionnelle si IDReservation est clé unique
    AND Reservation.dDebut = '20140508000000'
    AND Reservation.dFin = '20140508120000'
    Il y a une autre manière de passer les paramètres à une requête :
    Utiliser la notation <Nom de la requête>.<Nom du paramètre>

    Bitwin

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2013
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2013
    Messages : 191
    Points : 472
    Points
    472
    Par défaut
    Bonjour,

    Citation Envoyé par bitwin Voir le message
    Il y a une autre manière de passer les paramètres à une requête :
    Utiliser la notation <Nom de la requête>.<Nom du paramètre>
    Ça fonctionne avec cette notation
    Merci

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

Discussions similaires

  1. Erreur dans mon programme divide par 0
    Par omar6995 dans le forum Débuter avec Java
    Réponses: 11
    Dernier message: 18/02/2014, 09h10
  2. Erreur avec le programme par défaut
    Par Kisskool83 dans le forum Android
    Réponses: 3
    Dernier message: 26/12/2011, 13h37
  3. Réponses: 2
    Dernier message: 05/06/2009, 16h01
  4. Réponses: 1
    Dernier message: 20/03/2007, 19h45
  5. Réponses: 2
    Dernier message: 22/01/2007, 10h41

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