OVH Cloud OVH Cloud

Débutant... Help... Modification d'enregistrements

19 réponses
Avatar
KRIS
Bonjour et merci pour votre aide...
Je débute sous Windev et j'ai quelques difficultés à comprendre ses
mécanismes...
PB : Une modif de champ de saisie ne se répercute pas dans le
fichier....

J'ai une base sous Mysql...
Une Appli sous Windev (8)...

Je souhaite faire une recherche sur un fichier.

- Donc dans une fenètre j'ai mis un champ de saisie dans lequel on
rempli la valeur recherchée. + Un bouton qui lance la recherche...
- J'ai fait une Requete qui met à jour une table mémoire dans cette
même fenetre.
Jusque là tout ce passe bien.

J'ai rajouter un autre bouton qui permet (après selection d'une ligne
dans la table mémoire) d'ouvrir une fiche qui présente les données de
l'enregistrement sélectionné...

Mais quand je fais une modif sur un champ et que je souhaite valider la
modif , elle est effective à l'écran mais pas dans le fichier... (Que
le fichier soit le fichier réel concerné ou une autre requette). Ci
dessous le code utilisé... Il doit manquer quelque chose...

BOUTON RECHERCHE :
(RR est ma variable, Req_RR_VE ma requette de recherche, Table_1 est la
table mémoire))
HExécuteRequête(Req_RR_VE,hRequêteDéfaut,RR)
FichierVersTableMemoire(Table_1,Req_RR_VE)


Bouton OUVERTURE FICHE

J'ai essayer avec une requette
hexecuterequete(Req_fich_VE,hrequetedefaut,Table_1.RR)
Ouvre("Fiche_req_ve","Modif")

ou directement avec une fiche faite par RAD ou faite pmanuellement
(X et le fichier, Y le champ concerné, Table_1.num_Enr la valeur a
trouver)
HLitRecherche(X,Y,Table_1.NUM_ENR)
//ouvre(Fiche_x,"Modif")

Le résultat s'affiche bien...

BOUTON MODIF
EcranVersFichier()
HModifie(x,hNumEnrEnCours)

Résultat...Aucune modif dans le fichier
(Même avec la gestion d'erreur je n'ai aucun message comme quoi ça se
passe mal...)

Ca doit être très simple..... Non ?

Merci encore pour votre aide.

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

9 réponses

1 2
Avatar
farplus
Après mure réflexion, KRIS a écrit :
farplus a formulé la demande :
Le 25/06/2004, JBT a supposé :
KRIS a présenté l'énoncé suivant :
Infos Sup...

J'ai mis après le Hmodifie(x) un RAZ() puis un Fichierversecran().
La valeur modifiée remonte bien mais n'est toujours pas effective dans le
fichier ????

J'ai mis un traitement d'erreur (Si pas hmodifie...)
Il me renvoie un code erreur '0' (Donc il y a bien une erreur, mais
laquelle ???)

:'(



Je ne vois vraiment pas ce que tu as voulu faire avec hmodifie puis hrAZ
et ensuite fichierversecran !!! L'ordre des appels ne me semble pas
logique.

Pour connaître la raison d'un échec d'une fonction du doit regarder
erreurinfo.
Exemple : SI PAS HMODIFIE(Fichier) ALORS ERREUR(ERREURINFO)

D'après ta demande j'ai l'impression que tu tentes un peu des appels de
fonctions dans tous les sens ! Pour bien débuter, je te conseille de créer
une fenêtre fiche avec le RAD, puis de l'exécuter via le débogueur (point
d'arrêt dans le code de déclaration). Tu fais F7 en pas à pas, et tu vas
voir comment il procède pour faire modification et autre.
je t'assure c'est vraiment un moyen pour être très vite opérationnel.



Si ta modification concerne une clé unique qui est au même temps la clé de
parcours, elle ne marchera pas !
Dans ce cas: Hsupprime(), EcranVersFichier() HAjoute !

A+



Non, cela ne concerne aucune clé... même pas un index...



Tu es en quelle version de Windev ?

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
KRIS
farplus a présenté l'énoncé suivant :

WD 8


Ton pb est intéressant
dans 2 minutes je t'envoie qq chose sur ton adresse personnelle
(on ne peut annexer des fichiers ici)

A+



mon adresse perso (vire les nosamps)


--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
farplus
>
WD 8


Ton pb est intéressant
dans 2 minutes je t'envoie qq chose sur ton adresse personnelle
(on ne peut annexer des fichiers ici)

A+

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
farplus
KRIS avait écrit le 25/06/2004 :
JBT a formulé la demande :
KRIS a présenté l'énoncé suivant :
Infos Sup...

J'ai mis après le Hmodifie(x) un RAZ() puis un Fichierversecran().
La valeur modifiée remonte bien mais n'est toujours pas effective dans le
fichier ????

J'ai mis un traitement d'erreur (Si pas hmodifie...)
Il me renvoie un code erreur '0' (Donc il y a bien une erreur, mais
laquelle ???)

:'(



Je ne vois vraiment pas ce que tu as voulu faire avec hmodifie puis hrAZ et
ensuite fichierversecran !!! L'ordre des appels ne me semble pas logique.

Pour connaître la raison d'un échec d'une fonction du doit regarder
erreurinfo.
Exemple : SI PAS HMODIFIE(Fichier) ALORS ERREUR(ERREURINFO)

D'après ta demande j'ai l'impression que tu tentes un peu des appels de
fonctions dans tous les sens ! Pour bien débuter, je te conseille de créer
une fenêtre fiche avec le RAD, puis de l'exécuter via le débogueur (point
d'arrêt dans le code de déclaration). Tu fais F7 en pas à pas, et tu vas
voir comment il procède pour faire modification et autre.
je t'assure c'est vraiment un moyen pour être très vite opérationnel.



Pour les deux derniers appels (RAZ et fichierversecran) c'était juste un test
pour voir les valeurs qui remontaient après la modif...
J'ai déjà testé la gestion d'erreur (SI PAS HMODIFIE(Fichier) ALORS
ERREUR(ERREURINFO))
Ca donne rien... Soit j'ai pas d'erreur signalée, soit erreur(0)... (mais
j'avais déjà détaillé cela dans mon deuxième message)
Après tes recommendations, je vais tenter le dégogeur... J'avais aussi déjà
essayer avec une fiche RAD et ça fait pareil... Il semble que l'erreur ce
soit due au positionnement sur l'enregistrement courant... Là, j'ai du mal a
comprendre... puisque les données de l'enregistrement remontent bien dans la
fiche et que les champs sont bien attachées au rubriques ??? A suivre....



Rebonjour,

excuse-moi, ce que je t'ai envoyé ne correspond pas à ton cas, j'avais
pas remarqué que tu étais sur une base Mysql...
Une voie peut-être: dans ta fenêtre de modif, décoche la case <contexte
indépendant> (quoiqu'il ne devrait concerner qu'HF).
Autre chose: normalement les bases Mysql sont lue par paquet de x
(100?) enregistrements; peut-être que la modif reste en mémoire s'il
n'y a pas un flush. Essaie d'utiliser un Hferme() après ton Hmodif() -
t'as pas besoin de faire un Houvre(), il est automatique.

Tiens-nous au courant

A+

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
KRIS
farplus avait prétendu :
KRIS avait écrit le 25/06/2004 :
JBT a formulé la demande :
KRIS a présenté l'énoncé suivant :
Infos Sup...









Bon, j'ai refais un projet neuf juste pour ce test...

J'ai relié seulement 2 fichiers de ma précédente analyse... toujours
sur Mysql (INNODB)
Le fichier "A" sur lequel je plantais...
Le fichier "B" pris au hasard
La différence entre ces deux fichiers est le nombre de
rubrique.(A4 / B")
J'ai mis seulement 2 enregistrements par fichier...

J'ai executer un rad complet projet pour avoir les tables et fiches de
chaque fichiers...
Test... Les modifs passent sur les deux fichiers...

J'ai créé, sur chaque fichier, 2 requettes selection avec 1 paramètre
chacune
Dans le menu général j'ai créé 2 champs de saisie pour chaque valeur de
paramètre.
Chaque requette alimente 2 tables mémoires (dans la même page) qui
affichent la séléction
...Jusque là tout va bien...

J'ai créé (toujours pour les deux fichiers) un bouton d'appel de la
fiche_rad concernée
afin d'afficher/modifier l'enregistrement sélectionné dans la table
mémoire...
code d'ouverture : HLitRecherche(a,a.NUM_ENR,Table_Req_a.NUM_ENR) ;
Ouvre(Fiche_a,"Modif")

Les fiches rad s'ouvrent et se remplissent bien...

MAIS !! Seulent les modifs du fichier B s'éffectuent et toujours pas
celles du A !!! :-?

Dernier test... travail les même fichiers mais en Hyperfile 7... Les
deux fonctionnent !!!
Donc cela peut venir d'un PB d'accès natif Mysql !!!
A suivre....

Merci encore à tous pour vos participations...

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
KRIS
Pour résumer...

Lecture/modification de fichier mysql.

Il semble qu'il sagisse d'un pb lié à l'ouverture du fichier Mysql et
au positionnement sur l'enregistrement (ex : Hlitrecherche).
Car sur des bases hyperfile 7, tout fonctionne bien...

1 : ça marche avec un fichier et pas avec un autre - avec exactement
les mêmes procédures - seuls les nombres de rubrique par fichier sont
différents....
2 : ça marche toujours en passant par la table_fichier_rad qui appelle
la fiche_fichier_rad par le bouton modifier
3 : ça ne marche pas en appelant la même fiche_fichier_rad par une
autre fenêtre exécutant HlitRecherche(....) puis
ouvre(fiche_fichier_rad,"Modif") (même si la fiche se remplie bien par
le fichierVersEcran())


Donc question... Comment fait-on pour appeller une fiche_fichier_RAD
sans passer par la Table_Fichier_RAD, et en la positionnant sur un
enregistrement spécifique que l'on aura sélectionné grace à une
requette ?

(J'ai noté d'ailleur qu'il est dit que les modifs effectuées sur une
requette basée sur des fichiers non hyperfile sont systématiquement
reportés dans le fichier concerné (requette mono fichier!)... Dans le
cas précis ça ne marche pas non plus !)

>:|

La réponse est peut être dans la fenêtre TABLE_fichier_RAD et ses
traitements...
(Mais je crains que cela ne marche que parceque la TABLE_fichier_RAD
est directement liée au fichier...)

ya plus qu'à !

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
KRIS
Suite....

J'ai mis une table liée à mon fichier dans la première fenêtre et je
sélectionne mon enregistrement dans cette table... j'ouvre la fiche
pour faire les modif et Là, normal, ça marche...

Donc il sagirait d'un PB d'enregistrement courrant non conservé par la
fonction
hlitRecherche() qui lit bien l'enregistrement mais ne conserve pas le
lien avec le fichier... Dans l'aide, ils disent qu'il peut y avoir des
erreurs et que ça sera corrigé ulterrieurement...

Je vais donc relancer un nouveau message.... PB Ouverture de fichier
MYSQL !
A suivre...

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
STASZEWSKI André
Salut,

KRIS wrote:
Suite....

J'ai mis une table liée à mon fichier dans la première fenêtre et je
sélectionne mon enregistrement dans cette table... j'ouvre la fiche
pour faire les modif et Là, normal, ça marche...

Donc il sagirait d'un PB d'enregistrement courrant non conservé par
la fonction
hlitRecherche() qui lit bien l'enregistrement mais ne conserve pas le
lien avec le fichier... Dans l'aide, ils disent qu'il peut y avoir des
erreurs et que ça sera corrigé ulterrieurement...



Essaye avec HlitRecherchePremier() (même syntaxe)

Je vais donc relancer un nouveau message.... PB Ouverture de fichier
MYSQL !
A suivre...



--
Cordialement,
André STASZEWSKI
Nouvelle version 3.0 de Photo Visu sur www.PlaneteDev.fr.st
Avatar
KRIS
> Essaye avec HlitRecherchePremier() (même syntaxe)




J'ai essayé aussi .. ça marche toujours pas...
Merci quand même...

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
1 2