Rechercher : dans
Par :

Problème Hmodifie Clé (WinDev9)

Dernière réponse le 6 nov 2009 à 11:47:36 ct1105, le 4 nov 2009 à 00:34:16 
 Signaler ce message aux modérateurs

Bonjour,
je commence à developper avec WinDev9
bref
lorsque je modifie dans les champs d'une fenetre, j'appuie sur Valider (ou bien OK)
Code utilisé dans le BTN Valider :

EcranVersFichier()
HModifie(Nom_Fichier,Numéro_Enregistrement)

toutes les rubriques sont modifiées, à l'exception de la rubrique "Clé"

j'aimerai bien savoir pourquoi cette rubrique n'accepte pas la modification
Merci pour votre aide...

Configuration: Windows XP
Firefox 3.5.4

Meilleures réponses pour « Problème Hmodifie Clé (WinDev9) » dans :
Clé USB Voir Introduction à la notion de clé USB Une clé USB (en anglais USB key) est un périphérique de stockage amovible de petit format pouvant être branché sur le port USB d'un ordinateur. Une clé USB embarque dans une coque plastifiée un...
Les systèmes à clé publiques Voir le principe du chiffrement à clé publique Le principe de chiffrement asymétrique (appelé aussi chiffrement à clés publiques) est apparu en 1976, avec la publication d'un ouvrage sur la cryptographie par Whitfield Diffie et Martin Hellman. Dans...
Cryptage à clé privée (ou clef secrète) Voir Le chiffrement symétrique Le chiffrement symétrique (aussi appelé chiffrement à clé privée ou chiffrement à clé secrète) consiste à utiliser la même clé pour le chiffrement et le déchiffrement. Le chiffrement consiste à appliquer une opération...
Avast familial : renouveler / enregistrer sa clé de licence Voir1) Obtenir une nouvelle licence 2) Enregistrer sa nouvelle licence 1) Obtenir une nouvelle licence 1.1) Pour renouveler la clé de licence, se rendre sur le site d'Avast et remplir le formulaire d'inscription qui se trouve ICI. 1.2)...
Formater une clé USB VoirLes clés USB doivent nécessairement être formatées avec le système de fichiers FAT (FAT16 ou FAT32) pour pouvoir être utilisées par les principaux systèmes d'exploitation. Sous Windows Or, pour une clé USB de capacité supérieure à 32Mo, Windows...
La clé 3G : l’outil indispensable pour rester connecté VoirLa clé 3G : l’outil indispensable pour rester connecté De plus en plus séduits par la clé 3G, beaucoup de chefs d’entreprises affirment être...

1

pebkac, le 4 nov 2009 à 02:52:13

Hello
n'y aurait-il pas une clé étrangère sur ta clé ?

Répondre à pebkac

2

ct1105, le 4 nov 2009 à 09:43:37

Non j'ai pas de clé étrangère

Répondre à ct1105

3

ct1105, le 4 nov 2009 à 12:22:43

Bonjour,

héé, je crois que la clé unique n'est pas modifiable
La solution est de mettre un ID_AUTOMATIQUE
n'est ce pas ???...

Répondre à ct1105

4

ct1105, le 5 nov 2009 à 22:00:04

He ho

y pas qq'1 qui peux m'aider ???

Répondre à ct1105

5

pebkac, le 5 nov 2009 à 22:25:47

Salut
je n'ai pas encore WinDev, je ne peux donc répondre précisément à ta question.
néanmoins, une colonne, même si elle fait partie de la clé primaire, doit être modifiable (évidemment, en respectant les contraintes qui lui sont associées).
Cette impossibilité de modification risque de te faire prendre de trrrès mauvaises habitudes en manipulation de données. Et le jour où tu passeras vers une autre config (LAMP ou APEX par ex), tu vas te retrouver complètement déboussolé.
donc
- si l'impossibilité de modifier la clé vient de ton sgbd, changes-en
- si l'impossibilité de modifier la clé vient de WinDev, changes-en et signale-le nous, histoire de ne pas faire la même erreur que toi.

Répondre à pebkac

6

ct1105, le 5 nov 2009 à 23:46:34

Pour être plus clair,
Dans l'analyse, j'ai modifié la Liaison entre les fichiers pour que :
- Règles de suppression : interdire la suppression d'un "Nom_1°Fichier", qui a au moins un "Nom_2°Fichier"
- Règles de Modification : Modifier la clé du "Nom_1°Fichier", et toutes clés reliées du "Nom_2°Fichier"

Exemple : j'ai les Deux Fichiers suivants
- PANNE(CD_PANNE, LIB_PANNE)
- CAUSE_PANNE(CD_CAUS_PANNE, LIB_CAUS_PANNE)

la relation est AVOIR_CAUSE_PANNE avec (0,n) des deux côtés
Tous les champs sont de type TEXTE

dans l'ajout, ça marche très bien. mais lorsque je veux modifier avec HModifie(NOM_FICHIER,NUM_ENREGISTREMENT), ça marche pas.

sachant bien que dans d'autre projet d'auto-formation, la modification se passe bien.
ALORS, qu'est ce que vous en dites

Répondre à ct1105

7

du crétin, point te moquer tu ne dois, le 6 nov 2009 à 01:14:59

Bonjour,

je prends bonne note de 1) la suppression du père est interdite s'il y a des enfants et 2) les enfants sont modifiés si le père est modifié.
donc, la modification de la "clé" devrait fonctionner.
si ça continue à refuser de fonctionner, c'est que 1) le logiciel est mal foutu (mais ça se saurait) 2) la base de données est mal foutue (ça se saurait aussi) 3) il y a une liaison "cachée" qui n'a pas été modifiée pour adopter les règles ci-dessus.
... et, ne serait-ce pas à cause d'une table intermédiaire (rendue nécessaire par le (0,n) dans les 2 sens) entre panne et cause_panne ?

Et si l'on reprenait sa casquette d'analyste ? on irait dire qu'une panne ne peut avoir qu'une cause ; et si la panne a plusieurs causes, c'est qu'en fait, il y a plusieurs pannes ;-)

Répondre à du crétin, point te moquer tu ne dois

9

 ct1105, le 6 nov 2009 à 11:47:36

Je crois que c'est moi le foutu
c'est juste la condition de modification que j'ai raté
il fallait faire :

SI ch="modif" ALORS
HLitRecherchePremier(PANNE,CD_PANNE,Fn_PANNE.CD_PANNE)
SI PAS HTrouve() ET CD_PANNE <> sANCIEN_CD_PANNE ALORS
EcranVersFichier()
HModifie()
// Message d'information
Info("Modification effectuée avec succès")
SINON
Info("Ce Code existe déjà !.")
RepriseSaisie(Fn_PANNE.CD_PANNE)
FIN
FIN

Avant, voilà la faute commise :

SI ch="modification" ALORS
HLitRecherchePremier(Marque,CD_MARQUE,Fn_Marque.CD_MARQUE)
SI HTrouve() ET Fn_PANNE.CD_PANNE <>sANCIEN_CD_PANNE) ALORS
Info("Cette Panne existe déjà !.")
RepriseSaisie(Fn_PANNE.CD_PANNE)
SINON
SI HTrouve() ET Fn_PANNE.CD_PANNE = sANCIEN_CD_PANNE ALORS
EcranVersFichier()
HModifie()
// Message d'information
Info("Modification effectuée avec succès")
FIN
FIN
FIN


En tous cas, merci pour l'intérêt accordé de votre part....

Répondre à ct1105