OVH Cloud OVH Cloud

PB ouverture fichier Mysql (Enregistrement courrant)

23 réponses
Avatar
KRIS
Débutant en détresse...

Bonjour à tous et merci pour votre aide...

J'ai une Appli sous WD8
Une BD sous Mysql
J'ai fais un rad complet qui a créé les Tables et les fiches.

j'ai fait une requete sélection sur un fichier.
J'affiche les résultats dans une table mémoire (non liée à la requete)

Après sélection de la ligne voulue par l'utilisateur je souhaite ouvrir
la fiche RAD concernée pour permettre les modifications.

J'ai essayé le code suivant mais cela ne marche pas...
Pas de répercussion des modifs dans le fichier.

ouverture Requette :
HExécuteRequête(requeteSelection,hRequêteDéfaut,param1)
FichierVersTableMemoire(Table_1,requeteSelection)

Puis après selection de la ligne :
HlitRecherche(fichier,rubrique,table_1.valeur)
ouvre(FicheRAD,"Modif")

Enfin pour appliquer les modifs :
FichierVersEcran() ou Fichier.rubrique=Fiche.champ
hmodifie(fichier)

La fiche RAD s'ouvre correctement remplie mais si je fais des modifs
elles ne sont pas écritent dans le fichier... (NB avec gestion
d'eurreur : Aucune erreur remontée...)
Il semble qu'il n'y ai pas de liaison constante avec le fichier.

Cela me semble bien aléatoire ! (Ce code marche très bien avec
Hyperfile)

Que faut-il rajouter ? Merci beaucoup pour votre aide...

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

10 réponses

1 2 3
Avatar
Antoine
Salut, KRIS, vu le détail de ton précédent message "Modification
d'enregistrement", je pense que c'est ta base MySQL qui a un pb, tu indiques
qu'avec une autre base MySQL il n'y a aucun pb.
Tu devrait envoyer un DUMP de ta base au support pour voir s'ils
reproduisent.
De mon cote, je ne reproduit pas non plus.
Salut, Antoine.

KRIS wrote:
Débutant en détresse...

Bonjour à tous et merci pour votre aide...

J'ai une Appli sous WD8
Une BD sous Mysql
J'ai fais un rad complet qui a créé les Tables et les fiches.

j'ai fait une requete sélection sur un fichier.
J'affiche les résultats dans une table mémoire (non liée à la requete)

Après sélection de la ligne voulue par l'utilisateur je souhaite
ouvrir la fiche RAD concernée pour permettre les modifications.

J'ai essayé le code suivant mais cela ne marche pas...
Pas de répercussion des modifs dans le fichier.

ouverture Requette :
HExécuteRequête(requeteSelection,hRequêteDéfaut,param1)
FichierVersTableMemoire(Table_1,requeteSelection)

Puis après selection de la ligne :
HlitRecherche(fichier,rubrique,table_1.valeur)
ouvre(FicheRAD,"Modif")

Enfin pour appliquer les modifs :
FichierVersEcran() ou Fichier.rubrique=Fiche.champ
hmodifie(fichier)

La fiche RAD s'ouvre correctement remplie mais si je fais des modifs
elles ne sont pas écritent dans le fichier... (NB avec gestion
d'eurreur : Aucune erreur remontée...)
Il semble qu'il n'y ai pas de liaison constante avec le fichier.

Cela me semble bien aléatoire ! (Ce code marche très bien avec
Hyperfile)

Que faut-il rajouter ? Merci beaucoup pour votre aide...


Avatar
JBT
KRIS a couché sur son écran :
Débutant en détresse...

Bonjour à tous et merci pour votre aide...

J'ai une Appli sous WD8
Une BD sous Mysql
J'ai fais un rad complet qui a créé les Tables et les fiches.

j'ai fait une requete sélection sur un fichier.
J'affiche les résultats dans une table mémoire (non liée à la requete)

Après sélection de la ligne voulue par l'utilisateur je souhaite ouvrir
la fiche RAD concernée pour permettre les modifications.

J'ai essayé le code suivant mais cela ne marche pas...
Pas de répercussion des modifs dans le fichier.

ouverture Requette :
HExécuteRequête(requeteSelection,hRequêteDéfaut,param1)
FichierVersTableMemoire(Table_1,requeteSelection)

Puis après selection de la ligne :
HlitRecherche(fichier,rubrique,table_1.valeur)
ouvre(FicheRAD,"Modif")

Enfin pour appliquer les modifs :
FichierVersEcran() ou Fichier.rubrique=Fiche.champ
hmodifie(fichier)

La fiche RAD s'ouvre correctement remplie mais si je fais des modifs elles ne
sont pas écritent dans le fichier... (NB avec gestion d'eurreur : Aucune
erreur remontée...)
Il semble qu'il n'y ai pas de liaison constante avec le fichier.

Cela me semble bien aléatoire ! (Ce code marche très bien avec Hyperfile)

Que faut-il rajouter ? Merci beaucoup pour votre aide...



Si tu travailles avec mysql le mieux c'est d'activer un log via le
fichier my.ini. Ainsi tu pourras voir les requetes envoyées à la base,
la mise au point se fait alors quasiment toute seule !

--

Avatar
KRIS
Merci pour vos réponses...

Mes derniers essais m'ont permis de constater ceratines choses...

1 - Contrairement à ce que je disais, les modifs ne sont pas
répercutées sur les enregistrements depuis les Fiches RAD... La fiche
RAD et la table RAD affichent bien les modifs mais si je ferme la table
RAD et que je l'ouvre à nouveau, les modifs n'apparaissent plus... Tout
ce passe en mémoire et rien sur le fichier.

2 - Les enregistrements de la table sont importés dans la base mysql
depuis une base HF5.5 via SQLmanagerXConvert. Les modifs ne sont pas
répercutés sur ces enregistrements.

3 - Si je crée des nouveaux enregistrements manuellement par les tables
et fiches RAD, les modifs sont bien répercutées dans le fichier pour
ces enregistrements.

4 - Pour un autre fichier avec bien moins de rubriques et seulement 10
enregistrements importés via SQLmanagerXConvert... tout marche bien...

NB : Le fichier qui pose problème et qui est importé d'HF5.5 contient
des champs binaires...

... A suivre ...

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
KRIS
Je les ai contacté et c'est ce qu'ils me demandent(Dump) car ils ne
reproduisent pas non plus...

Il semble que cela ne touche que les enregistrements importés via
SQLmanagerXConvert qui deviennent non modifiables??? ou peut être
sagit-t-il d'un pb d'index ??? Là, j'avoue, ça me dépasse...

Merci pour ton aide...

KRIZ

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
KRIS
J'ai activer le log, enfin, je crois, et je ne trouve pas d'infos de
log.. Peux tu me détailler la procédure car je suis pas un as de
Mysql...

Il semble le problème ne touche que les enregistrements importés via
SQLmanagerXConvert depuis une base HF 5.5. Peut être sagit-t-il d'un pb
d'index ??? Là, j'avoue, ça me dépasse...

Merci pour ton aide.

KRIZ

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
Manu
KRIS wrote:
Merci pour vos réponses...

Mes derniers essais m'ont permis de constater ceratines choses...

1 - Contrairement à ce que je disais, les modifs ne sont pas
répercutées sur les enregistrements depuis les Fiches RAD... La fiche
RAD et la table RAD affichent bien les modifs mais si je ferme la
table RAD et que je l'ouvre à nouveau, les modifs n'apparaissent
plus... Tout ce passe en mémoire et rien sur le fichier.



Question 1 : y-a-t-il un code de rafraichissement automatique (qui va
chercher les données en base) pour la table ?

2 - Les enregistrements de la table sont importés dans la base mysql
depuis une base HF5.5 via SQLmanagerXConvert. Les modifs ne sont pas
répercutés sur ces enregistrements.



Là je n'aime pas trop ! Vous migrez des données avec SQLmanagerXConvert dans
Mysql : félicitations. Par contre c'est techniquement IMPOSSIBLE au moteur
de MySQL (ou à tout autre système) de bloquer des enregistrement provenant
de tel ou tel méthode d'insertion (SQLmanagerXConvert dans notre cas).

3 - Si je crée des nouveaux enregistrements manuellement par les
tables et fiches RAD, les modifs sont bien répercutées dans le
fichier pour ces enregistrements.



Voir point plus haut.

4 - Pour un autre fichier avec bien moins de rubriques et seulement 10
enregistrements importés via SQLmanagerXConvert... tout marche bien...

NB : Le fichier qui pose problème et qui est importé d'HF5.5 contient
des champs binaires...



Question 2 : quel est le script de création de la table avec les mémo ?
Question 3 : êtes vous en InnoDB ? si oui êtes vous en AutoCommit ?
Question 4 : vu qu'il y a des binaires dans la table, la fenetre fiche
portant sur un enreg contenant un binaire fonctionne-t-elle ?
Question 5 : que se passe-t-il si vous modifier un enreg ne contenant pas
de binaire ?

--
Emmanuel
Avatar
KRIS
Dans son message précédent, Manu a écrit :
KRIS wrote:
Merci pour vos réponses...

Mes derniers essais m'ont permis de constater ceratines choses...

1 - Contrairement à ce que je disais, les modifs ne sont pas
répercutées sur les enregistrements depuis les Fiches RAD... La fiche
RAD et la table RAD affichent bien les modifs mais si je ferme la
table RAD et que je l'ouvre à nouveau, les modifs n'apparaissent
plus... Tout ce passe en mémoire et rien sur le fichier.



Question 1 : y-a-t-il un code de rafraichissement automatique (qui va
chercher les données en base) pour la table ?


Oui !



2 - Les enregistrements de la table sont importés dans la base mysql
depuis une base HF5.5 via SQLmanagerXConvert. Les modifs ne sont pas
répercutés sur ces enregistrements.



Là je n'aime pas trop ! Vous migrez des données avec SQLmanagerXConvert dans
Mysql : félicitations. Par contre c'est techniquement IMPOSSIBLE au moteur
de MySQL (ou à tout autre système) de bloquer des enregistrement provenant
de tel ou tel méthode d'insertion (SQLmanagerXConvert dans notre cas).

3 - Si je crée des nouveaux enregistrements manuellement par les
tables et fiches RAD, les modifs sont bien répercutées dans le
fichier pour ces enregistrements.



Voir point plus haut.

4 - Pour un autre fichier avec bien moins de rubriques et seulement 10
enregistrements importés via SQLmanagerXConvert... tout marche bien...

NB : Le fichier qui pose problème et qui est importé d'HF5.5 contient
des champs binaires...



Question 2 : quel est le script de création de la table avec les mémo ?


C'est Windev qui crée la table selon la description de l'avanlyse

Question 3 : êtes vous en InnoDB ? si oui êtes vous en AutoCommit ?


Oui (par défaut)
Question 4 : vu qu'il y a des binaires dans la table, la fenetre fiche
portant sur un enreg contenant un binaire fonctionne-t-elle ?
Question 5 : que se passe-t-il si vous modifier un enreg ne contenant pas
de binaire ?


Binaire... en fait il n'y a que des mémos (je ne sais pas s'ils sont
considérés comme binaire ??) dans tous les cas, remplis ou pas, ça ne
marche pas !

J'ai fait des tests.
- J'ai importé un seul enregistrement dans la table (via Access et
ODBC)... Je ne peux toujours pas le modifier par l'appli WD...
- J'ai créé un autre enregistrement manuellement via l'appli windev ...
Je peux le modifier..
- Si je lance des requette SQL depuis un mysql manager quelquonque...
Toutes les modifs sont acceptés sur tous les enregistrements...

J'en conclus donc que c'est bien un soucis WD / accès natif et pas un
PB Mysql.

Je viens de mettre à jour l'accès natif Mysql (dipo du 25/6)
Maintenant quand je tente d'appliqquer les modifications à un
enregistrement (importée) windev j'ai un message d'erreur :
"L'enregistrement que vous tentez de modifier a été suprimé par un
autre personne... voulez vous rétablir l'enregistrement et effectuer
les modifs (OK) ou annuler..."
Si je fais "OK" il me duplique l'enregistrement et les modifs sont
passées...

Je mets à jour tout WD...
A suivre....
:/

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
Manu
>> Question 1 : y-a-t-il un code de rafraichissement automatique (qui va
chercher les données en base) pour la table ?


Oui !



Donc dans la transaction en cours les données sont rafraichies! Car les
données ont fait : appli->SGBD->appli Donc l'accès natif MySQL sait mettre à
jour les données, donc il n'y a pas d'incompatibilité.

Question 2 : quel est le script de création de la table avec les
mémo ?


C'est Windev qui crée la table selon la description de l'avanlyse



Sinon, le script de création de la table donne quoi ?

Question 3 : êtes vous en InnoDB ? si oui êtes vous en AutoCommit ?


Oui (par défaut)



Oui pour InnoDB ? ou Oui pour autocommit ?

Si c'est oui pour innodb, essayé de faire une fenetre avec un bouton ayant
pour algo :

- Démarrage de la transaction
-Hlitrecherche(mon_fichier,ma_colonne)
mon_fichier.ma_colonne = 1
Hmodifie(mon_fichier)
- fin de la transaction en OK.

Question 4 : vu qu'il y a des binaires dans la table, la fenetre
fiche portant sur un enreg contenant un binaire fonctionne-t-elle ?





vous n'avez pas de fenetre fiche ?

Question 5 : que se passe-t-il si vous modifier un enreg ne
contenant pas de binaire ?


Binaire... en fait il n'y a que des mémos (je ne sais pas s'ils sont
considérés comme binaire ??) dans tous les cas, remplis ou pas, ça ne
marche pas !



et sur des tables sans binaires cela fonctionne ?

J'ai fait des tests.
- J'ai importé un seul enregistrement dans la table (via Access et
ODBC)... Je ne peux toujours pas le modifier par l'appli WD...



Pouvez vous "jouer" avec les données au travers d'un frontal tel que
phpMyAdmin (du genre un update sur un enreg "bloqué") ?

- J'ai créé un autre enregistrement manuellement via l'appli windev
... Je peux le modifier..



Même en arretant l'appli et en la redémarrant ?

- Si je lance des requette SQL depuis un mysql manager quelquonque...
Toutes les modifs sont acceptés sur tous les enregistrements...



OK, oubliais la question au dessus

J'en conclus donc que c'est bien un soucis WD / accès natif et pas un
PB Mysql.



Ouf,

Je viens de mettre à jour l'accès natif Mysql (dipo du 25/6)
Maintenant quand je tente d'appliqquer les modifications à un
enregistrement (importée) windev j'ai un message d'erreur :
"L'enregistrement que vous tentez de modifier a été suprimé par un
autre personne... voulez vous rétablir l'enregistrement et effectuer
les modifs (OK) ou annuler..."
Si je fais "OK" il me duplique l'enregistrement et les modifs sont
passées...



Si vous êtes en InnoDB c'est IMPOSSIBLE car mysql refuserait le
dup_val_on_index.
Avatar
KRIS
Manu a couché sur son écran :
Question 1 : y-a-t-il un code de rafraichissement automatique (qui va
chercher les données en base) pour la table ?


Oui !



Donc dans la transaction en cours les données sont rafraichies! Car les
données ont fait : appli->SGBD->appli Donc l'accès natif MySQL sait mettre à
jour les données, donc il n'y a pas d'incompatibilité.

Question 2 : quel est le script de création de la table avec les
mémo ?


C'est Windev qui crée la table selon la description de l'avanlyse



Sinon, le script de création de la table donne quoi ?





Question 3 : êtes vous en InnoDB ? si oui êtes vous en AutoCommit ?


Oui (par défaut)



Oui pour InnoDB ? ou Oui pour autocommit ?



Oui pour les deux... Par défaut les tables crées sont en InnoDB et
l'autocomit est activé par défaut.

Si c'est oui pour innodb, essayé de faire une fenetre avec un bouton ayant
pour algo :

- Démarrage de la transaction
-Hlitrecherche(mon_fichier,ma_colonne)
mon_fichier.ma_colonne = 1
Hmodifie(mon_fichier)
- fin de la transaction en OK.



Meme erreur...

Question 4 : vu qu'il y a des binaires dans la table, la fenetre
fiche portant sur un enreg contenant un binaire fonctionne-t-elle ?





vous n'avez pas de fenetre fiche ?

Question 5 : que se passe-t-il si vous modifier un enreg ne
contenant pas de binaire ?


Binaire... en fait il n'y a que des mémos (je ne sais pas s'ils sont
considérés comme binaire ??) dans tous les cas, remplis ou pas, ça ne
marche pas !



et sur des tables sans binaires cela fonctionne ?



Les mémos texte sont-ils des champs binaires ?


J'ai fait des tests.
- J'ai importé un seul enregistrement dans la table (via Access et
ODBC)... Je ne peux toujours pas le modifier par l'appli WD...



Pouvez vous "jouer" avec les données au travers d'un frontal tel que
phpMyAdmin (du genre un update sur un enreg "bloqué") ?

- J'ai créé un autre enregistrement manuellement via l'appli windev
... Je peux le modifier..



Même en arretant l'appli et en la redémarrant ?



Ca ne change rien

- Si je lance des requette SQL depuis un mysql manager quelquonque...
Toutes les modifs sont acceptés sur tous les enregistrements...



OK, oubliais la question au dessus

J'en conclus donc que c'est bien un soucis WD / accès natif et pas un
PB Mysql.



Ouf,



comme vous dites !

Je viens de mettre à jour l'accès natif Mysql (dipo du 25/6)
Maintenant quand je tente d'appliqquer les modifications à un
enregistrement (importée) windev j'ai un message d'erreur :
"L'enregistrement que vous tentez de modifier a été suprimé par un
autre personne... voulez vous rétablir l'enregistrement et effectuer
les modifs (OK) ou annuler..."
Si je fais "OK" il me duplique l'enregistrement et les modifs sont
passées...



Si vous êtes en InnoDB c'est IMPOSSIBLE car mysql refuserait le
dup_val_on_index.



Et pourtant !

J'ai envoyé tout ça au support... Ya plus qu'à attendre leur réponse...
(Juste pour le fun je suis sur que chez eux ça va marcher :-@ )

En plus, avec la mise à jour de l'accès Natif Mysql, je ne peux même
plus modifier les enregistrements que je crée avec l'appli... Je
régresse Non ?

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
Manu
>> Si vous êtes en InnoDB c'est IMPOSSIBLE car mysql refuserait le
dup_val_on_index.



Et pourtant !



Si vous pouvez créer des doublons dans une table qu'elle soit Isam ou InnoDB
c'est que aucun index unique ou clé primaire n'existe pour cette table!

En plus, avec la mise à jour de l'accès Natif Mysql, je ne peux même
plus modifier les enregistrements que je crée avec l'appli... Je
régresse Non ?



no comment
1 2 3