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 :

impossible de faire une simple requete d'insertion [WD25]


Sujet :

WinDev

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 933
    Points : 348
    Points
    348
    Par défaut impossible de faire une simple requete d'insertion
    bonjour,

    je tente de faire une insertion dans ma bdd mysql mais je n'y arrive pas.
    j'ai une popup de vérification qui me dis que la requete d'insertion est ok mais quand je regarde dans ma base rien y fait.

    VOici mon bout de code :

    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
     
    QUAND EXCEPTION DANS
    	MaConnexion	est une Connexion
    	marequete	est une chaîne 
     
    	// Description de la connexion
    	MaConnexion.Utilisateur		= "user"
    	MaConnexion.MotDePasse		= "mp"
    	MaConnexion.Serveur			= "serveur"
    	MaConnexion.BaseDeDonnées	= "mabdd"
    	MaConnexion.Provider		= hAccèsNatifMySQL
    	MaConnexion.Accès			= hOLectureEcriture
    	MaConnexion.InfosEtendues	= "Infos étendues"
    	MaConnexion.OptionsCurseur	= hCurseurClient
     
     
     
    	SI HOuvreConnexion(MaConnexion) ALORS
     
    		Info("Connexion réussi")
     
    		marequete= "Insert INTO collaborateur (nom,prenom,Service,Site) VALUES('1', '2','3','4' )"
     
    		HExécuteRequêteSQL(marequete,  MaConnexion,  hRequêteSansCorrection)
     
    		Info("Insertion réussi")
    	SINON		
    		Info("Connexion échoué")		
    		SQLInfoGene(marequete)
    		Info("Erreur SQL : " + SQL.MesErreur)
    	FIN
     
    FAIRE
    	Erreur("La connexion à la source de données a échoué."+ RC +"Code erreur : " + HErreurInfo)
    	Info("Fin du traitement")
    FIN
    j'ai regardé sur un sujet similaire mais ça ne marche pas :
    https://www.developpez.net/forums/d2...nnecter-mysql/

    Est ce que je m'y prend bien ?
    En fait, j'execute mon code lorsque je clic sur un bouton "enregistrer".

    j'aurais une question complémentaire :
    est ce que à partir du moment où je peux faire mon insertion, ça sera le même syntaxe ( mais une requete différentes ), pour la mise à jour et la suppression de données ?

    Merci beaucoup pour vos lumières.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 933
    Points : 348
    Points
    348
    Par défaut
    Voici le message d'erreur que j'obtiens quand je tente de faire mon insertion :

    Nom : erreur windev.JPG
Affichages : 149
Taille : 46,9 Ko

  3. #3
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    Il ne te dit pas que tu as réussi ton ajout. Il est juste d'accord sur le fait que tu es bien connecté. Tu ne testes pas le résultat de l'exécution de ta requête. Dans ce cas, tu aurais vu que ça ne fonctionne pas. Il faut un code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MaSrc est une source de données
    SI PAS HExécuteRequêteSQL(MaSrc, MaConnexion, hRequêteSansCorrection, MaRequete) ALORS
    	Erreur(HErreurInfo(hErrComplet))
    FIN
    Pour la réponse à la question subsidiaire, c'est oui... Mais, je serais de toi, je mettrais mon code dans une procédure et je lui passerais en paramètre le texte de la requête.

    Note : A voir si Etats et requêtes permet de créer des procédures
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  4. #4
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 805
    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 805
    Points : 5 253
    Points
    5 253
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Réponse à la question subsidiaire:
    Tu es en AN, pourquoi ne pas utiliser directement les fonctions HAjoute et HSupprime :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    AVEC Collaborateur
         .Nom="1"
         .Prénom="2"
         .Service="3"
         .Site="4"
    FIN
    HAjoute(Collaborateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    HLitRecherchePremier(Collaborateur,PK_Collaborateur,12)
    HSupprime(Collaborateur
    Citation Envoyé par android59 Voir le message
    En fait, j'execute mon code lorsque je clic sur un bouton "enregistrer".
    Par contre le fait d'intégrer un bouton dans E&R me laisse perplexe
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  5. #5
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 933
    Points : 348
    Points
    348
    Par défaut
    bonjour,
    hier soir j'ai une chose qui m'est venu à l'esprit, est ce que c'est obligatoire de faire une analyse :

    Nom : capture.JPG
Affichages : 150
Taille : 17,1 Ko

    car c'est la première fois que je fais un programme avec windev.
    Merci bien.

    Je regarde ce qu'il en est concernant le poste précédent.

  6. #6
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    Non, tu n'es pas obligé de créer une analyse.

    L'avantage de celle-ci est surtout d'avoir une assistance lors de la saisie du code (complétion). En plus, tu pourras générer le script SQL de création de ta base (et de tes tables). Et j'en oublie sûrement...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  7. #7
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 933
    Points : 348
    Points
    348
    Par défaut
    Bonjour,
    ça marche ! J'arrive bien à rajouter un utilisateur
    voila ce que j'ai fais, en suivant vos conseils :

    Nom : 1.JPG
Affichages : 123
Taille : 21,6 Ko

    Nom : 2.JPG
Affichages : 123
Taille : 28,2 Ko

    Toutefois, j'y ai pensais ce matin, mais je me suis dis que je me prends trop la tete.
    Cette manière de faire, c'est bien, mais j'aimerais faire plus simple, c'est pour cela que l'on m'a demandé de faire sous windev, je pense que je peux faire plus simple, comme dans l'exemple de Voroltinquo:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    AVEC Collaborateur
         .Nom="1"
         .Prénom="2"
         .Service="3"
         .Site="4"
    FIN
    HAjoute(Collaborateur...)
    pour cela je pense (dite le moi si je me trompe) qu'il faut que je créé une analyse, avec la table "collaborateur" et pour champ : id, nom,prenom, service, site.
    Le soucis, en regardant de plus près ce n'arrive pas à lier ma base mysql avec l'analyse.

    Voici les messages d'erreur que j'ai le message cité dans le post https://www.developpez.net/forums/d2...nnecter-mysql/

    pourtant j'ai bien installé dans le répertoire EXe de mon projet la dll libmysql.dll, mais rien y fait.

    Mon but est que ce soit simple de programmation, est ce que je suis sur la bonne voie concernant l'analyse ? Elle doit bien être lié à ma base mysql ?

    Merci beaucoup.

  8. #8
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 805
    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 805
    Points : 5 253
    Points
    5 253
    Billets dans le blog
    1
    Par défaut
    Tu n'as pas lu la doc à fond.
    Je cite la doc :
    La DLL LibMySQL.DLL doit être présente :
    • Sur le poste de développement :

    • dans le répertoire "\Programmes\Framework\Win32x86" du répertoire d'installation de WINDEV ou WEBDEV (32 bits).
    • dans le répertoire "\Programmes\Framework\Win64x86" du répertoire d'installation de WINDEV ou WEBDEV (64 bits).

    • Sur le poste de déploiement

    dans le répertoire de l'exécutable ou dans le répertoire de Windows. En cas de déploiement sur un serveur Web, la DLL doit être présente dans le répertoire du Connecteur Natif ou dans le répertoire de Windows.
    En ce qui concerne la dll copiée sur le poste de déploiement elle doit correspondre à la version de MySQL installée(32 ou 64) et non au mode de compilation de ton exe.

    Cela te permettra de lier ta base au MPD (ce que PC Soft appelle l'analyse alors que ce n'est que 20% de l'analyse)
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  9. #9
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 375
    Points : 9 710
    Points
    9 710
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    En ce qui concerne la dll copiée sur le poste de déploiement elle doit correspondre à la version de MySQL installée(32 ou 64) et non au mode de compilation de ton exe.
    Tu es sûr de ça ?
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  10. #10
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 805
    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 805
    Points : 5 253
    Points
    5 253
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Jon Shannow Voir le message
    Tu es sûr de ça ?
    Oui, à 99%.
    La dll est utilisée par Wx pour appeler les fonctions propres à l'application tierce (ici, MySQL) un appel d'une fonction en 64 bit sur une appli 32 bit ( ou vice versa), risque de poser des problèmes.
    Par contre il est de plus en plus difficile de trouver une version 32 bits de MySQL donc en général, tout se passe bien, sauf ... (histoire vécue)
    Ce genre de problème est plus fréquent avec access
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  11. #11
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 375
    Points : 9 710
    Points
    9 710
    Par défaut
    Ça revient à dire que mon programme, compilé en 32 bits, appelle des fonctions contenues dans une dll compilées en 64 bits, parce que le serveur MySQL est en 64 bits ?
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  12. #12
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 805
    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 805
    Points : 5 253
    Points
    5 253
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Jon Shannow Voir le message
    Ça revient à dire que mon programme, compilé en 32 bits, appelle des fonctions contenues dans une dll compilées en 64 bits, parce que le serveur MySQL est en 64 bits ?
    C'est cela, la dll est une boite noire, il faut juste qu'elle passe les bons paramètres à MySQL (c'est surtout un problème d'adressage mémoire).
    Le problème est surtout dans l'autre sens d'ailleurs, une dll 64 qui "discute" avec un MySQL 32.
    C'est une des raisons pour laquelle lors des appels d'API Windows on utilise des entiers systèmes.
    D'un autre côté, la DLL que tu utilise, c'est celle que tu trouves dans l'install de MySQL. Si cest une install 32 bits, la DLL sera en 32 bits ...
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  13. #13
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 933
    Points : 348
    Points
    348
    Par défaut
    Bonjour
    j'ai finallement réussi à inserver des données , grâce à vos conseils, dans la table personne, ainsi que dans la table intervention.

    Pour cela, j'ai pris la libmysql.dll et je l'ai insérer dans le dossier de windev -> Programme -> Framework -> win32x86 et Win64x86

    J'ai créé l'analyse suivante :

    Nom : analyse.JPG
Affichages : 126
Taille : 31,7 Ko

    j'ai réussi à insérer une personne avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	SI HOuvreConnexion(MaConnexion) ALORS
    		AVEC personne
    			.nom=  lblajoutnom.ValeurAffichée
    			.prenom= lblajoutprenom.ValeurAffichée
    			.service= lblservice.ValeurAffichée
    			.site= Lblsite.ValeurAffichée
    		FIN
    		HAjoute(personne,hAffecteParcours)
    	FIN 
    		HFermeConnexion(MaConnexion)
    J'ai fais la meme chose pour inserer une intervention, toutefois je n'arrive pas à faire en sorte à ce que la table "etablir_interv" se remplissent automatiquement, lors d'une insertion d'une intervention.

    Voici mon mcd:
    Personne(id_collaborateur, nom, prenom, service, site)
    etablir_interv(id_ref_co, idref_inter)
    intervention(id_inter, date, ....,....,....,....).

    Quand je créé une intervention je selectionne la personne concerné et si je ne dis pas de betise, normalement la table "etabli_inter" doit se remplir automatiement avec l'id de la personne et l'id de l'intervention créé .
    Comment ça se fait que ça ne marche pas avec mes liaisons ?

    Merci beaucoup.

  14. #14
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 805
    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 805
    Points : 5 253
    Points
    5 253
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par android59 Voir le message
    Quand je créé une intervention je selectionne la personne concerné et si je ne dis pas de betise, normalement la table "etabli_inter" doit se remplir automatiement avec l'id de la personne et l'id de l'intervention créé .
    Il faut remplir "etabli_inter" à la main, ce n'est pas automatique
    Par ailleurs, en liant tes champs aux colonnes de ta table, cela allégerait de beaucoup ton code,ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    AVEC Collaborateur
    ....
    FIN
    HAjoute(Collaborateur)
    devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    EcranVersFichier()
    HAjouteCollaborateur
    Tout cela est décrit dans le manuel d'auto-formation. Dans la mesure où tu découvres Windev, c'est la première étape vers un développement serein
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  15. #15
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    Je plussoie Voroltinquo.

    J'ai qd même une question : elle sert à quoi ta table etabli_interv ? Je ne vois pas les liens (clés) entre personne et intervention...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  16. #16
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 805
    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 805
    Points : 5 253
    Points
    5 253
    Billets dans le blog
    1
    Par défaut
    Une autre remarque concernant l'auto-formation. Tu as la possibilité de télécharger les fenêtres utilisées dans chaque chapitre. C'est, à mon point de vue, une mauvaise idée. En effet le fait de manipuler la description des champ et des fenêtres te rendra de nombreux services ultérieurement.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  17. #17
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 933
    Points : 348
    Points
    348
    Par défaut
    frenchsting, Voroltinquo bonjour,

    en fait, j'ai établi la table "etabli_interv" dans mon mcd, afin de pouvoir requeter à l'avenir et/ ou pour des traitements futures.

    Je joints un mcd que j'ai fais pour expliquer la chose :

    Nom : mcd.jpg
Affichages : 99
Taille : 179,5 Ko

    J'ai re regardé la doc et en effet il précise bien quand il dit :
    La couche client MySQL 32 bits doit être installée pour utiliser le Connecteur Natif MySQL 32 bits.
    La couche client MySQL 64 bits doit être installée pour utiliser le Connecteur Natif MySQL 64 bits.

    j'avais pas compris que c'était les dossiers win32x86 et win64x86 ..

    Merci pour le conseil Voroltinquo .

  18. #18
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    J'ai 2 questions :
    1. Tu as préfixé ta discussion [Etats & Requêtes], c'est bien utilises ? Ca me paraît bizarre de pouvoir générer une analyse avec Etats et Requêtes...
    2. Ton code fonctionne car la connexion est ok. Par contre, si ton serveur MySQL ne tourne pas tu devrais avoir un message d'erreur. Tu essayes de fermer une connexion qui n'est pas ouverte. Dans tes dévs, pense à traiter si le test n'est pas vrai.

    J'aurais fait un code du genre :
    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
    SI PAS HOuvreConnexion(MaConnexion) ALORS
    	Erreur("Echec de l'ouverture de la connexion !", herreurInfo())
    	RETOUR
    FIN 
    AVEC personne
    	.nom=  lblajoutnom.ValeurAffichée
    	.prenom= lblajoutprenom.ValeurAffichée
    	.service= lblservice.ValeurAffichée
    	.site= Lblsite.ValeurAffichée
    FIN
    SI PAS HAjoute(personne,hAffecteParcours)ALORS
    	Erreur("Echec de l'enregistrement !", herreurInfo())
    	// Ici pas de retour car les instructions qui vont suivre pourront être exécutées
    FIN 
    SI PAS HFermeConnexion(MaConnexion)ALORS
    	Erreur("Echec de la fermeture de la connexion !", herreurInfo())
    	// Ici pas de retour car il n'y a plus de code après
    FIN
    EDIT : nos messages se sont croisés.

    Je suis d'accord pour le "intervention demandée par plusieurs personnes" qui justifie ta table intermédiaire.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  19. #19
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 933
    Points : 348
    Points
    348
    Par défaut
    pour la premiere question :
    j'ai mis ce prefixe car je ne savais pas quoi mettre, au risque de me tromper.

    pour la deuxieme question :
    ton code est bien en effet, voici le code exact que j'ai fais quand je clique sur le bouton enregistrer (pour une nouvelle personne ):

    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
     
    QUAND EXCEPTION DANS
    	MaConnexion	est une Connexion
     
    	// Description de la connexion
    	MaConnexion.Utilisateur		= "user"
    	MaConnexion.MotDePasse		= "pass"
    	MaConnexion.Serveur			= "serveur"
    	MaConnexion.BaseDeDonnées	= "mabdd"
    	MaConnexion.Provider		= hAccèsNatifMySQL
    	MaConnexion.Accès			= hOLectureEcriture
    	MaConnexion.InfosEtendues	= "Infos étendues"
    	MaConnexion.OptionsCurseur	= hCurseurClient
     
     
    	SI HOuvreConnexion(MaConnexion) ALORS
    		AVEC personne
    			.nom=  lblajoutnom.ValeurAffichée
    			.prenom= lblajoutprenom.ValeurAffichée
    			.service= lblservice.ValeurAffichée
    			.site= Lblsite.ValeurAffichée
    		FIN
    		HAjoute(personne,hAffecteParcours)
    	FIN 
    		HFermeConnexion(MaConnexion)	
     
    FAIRE
    //	Erreur("La connexion à la source de données a échoué."+ RC +"Code erreur : " + HErreurInfo)
    //	Info("Fin du traitement")
    FIN
    je n'ai pas encore peaufiné les exceptions, pour le moment je m'en tiens au principal, mais ton code est pas mal.


    Je suis en train de regardé dans windev, pour voir si je ne peux pas trouver un moyen que les id intervention et id_collaborateur peuvent s'enregistrer automatiquement, je trouve ça bizare car selon moi ça devrait pouvoir se faire ..
    Peux être qu'en créant les liaisons, il y avait des choix à cocher et que je n'ai pas cocher, je ne sais pas .
    Ce que je trouve étrange egalement c'est le "0,1" de chaque coté de la table "établi_interv" , normalement ça devrait être 0,n c'est ça, n'y aurait il pas un soucis dans les liaisons ?
    Merci

  20. #20
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Pour le préfixe, tu mets la version de WD la plus proche de celle que tu utilises.

    Pour ton code, je ne suis pas sûr que faire des EXCEPTION sur ce genre de code soit vraiment utile. Les tests SI PAS ... ALORS doivent suffire.

    Pour les cardinalités, quand tu as créé tes liaisons (ou que tu les édites), il t'a posé (te pose) les (bonnes) questions.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/03/2019, 17h40
  2. [Oracle] une simple requete d insertion
    Par Rukia dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2007, 10h39
  3. impossible de faire une commande INSERT
    Par nirolioben dans le forum Requêtes
    Réponses: 4
    Dernier message: 16/11/2006, 16h14
  4. Impossible de faire une rupture programmée...
    Par Tchupacabra dans le forum WinDev
    Réponses: 1
    Dernier message: 03/03/2006, 13h49
  5. Comment faire une simple boucle de décrementation
    Par marcus333 dans le forum Langage
    Réponses: 5
    Dernier message: 05/02/2006, 13h24

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