PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV Mobile 2025 → Problemes d'index HF sur carte SD
Problemes d'index HF sur carte SD
Iniciado por jianez, 09,oct. 2005 14:03 - 18 respuestas
Publicado el 09,octubre 2005 - 14:03
Salut à tous,

J'ai lu précédenemment qu'il pouvait y avoir des soucis d'index lorsque les fichiers étaient stockés sur carte SD et que le Pocket passait en mode veille. Aussi j'ai fait en sorte que mon application empêche cette mise en veille. De plus les fichiers sont systématiquement fermés après chaque accès à un enregistrement. Pour encore plus de sécurité, je suis en mode sécurité "2" soit la plus élévée.

POURTANT, je continue dans un contexte particulier, à avoir des problèmes d'index. En fait, on ne peut pas empêcher l'utilisateur d'appuyer sur le bouton de mise en veille.
Le bug est difficile à reproduire, mais la manip est la suivante :
* ajout/modif d'enregistrements dans le fichier "commandes"
* fermeture des fichiers
* appui sur le bouton de mise en veille
* attente de plusieurs minutes
* appui à nouveau sur le bouton de mise en veille
* affichage du fichier "commandes" dans une table fichier
*==> les enregistrements précédents ont disparus et l'index est "vérolé"

Le seul moyen de s'en sortir étant une réindéxation du fichier "commandes"

Le souci est que cette manip ne provoque pas toujours le même résultat !

Du coup, je me demande ce qu'il se passe réellement au niveau des fichiers HF sur carte lors de la mise en veille et que l'applicatio est lancée avec tous les fichiers fermés (en effet, si on quitte l'application, et qu'on rallume le Pocket, aucun problème !?)

Merci de vos éventuelles remarques et conseils.
Publicado el 10,octubre 2005 - 11:44
Bonjour,

Je suis content de constater que je ne suis pas le seul à avoir des problèmes d'index sur
fichier stockés sur carte mémoire.
A ce jour je n'ai pas trouvé de solution et apparemment PC SOFT non plus.
La seule solution que j'ai trouvé: tester l'index à l'ouverture du programme et le réindexer automatiquement si nécessaire.
Bien sur ceci n'est pa valable si le fichier est très important.

J'ai interrogé PC SOFT à ce sujet qui me dit n'avoir pas de remontées sur ce problème.

Pierre
Publicado el 10,octubre 2005 - 14:03
Bonjour,
J'ai le même problème, et comme mes fichiers sont assez importants, je ne peux pas vérifier les indexes au lancement.
Pour information, j'ai noté que certaines applications non windev ( Avango, par exemple ) ne supportent pas la mise en veille du pocketpc, si elles sont installées sur une SD-card. Donc à priori le problème n'est pas spécifique à PcSoft.
Pour l'instant, je n'ai pas d'autre solution que d'ajouter un bouton de réindexation des fichiers...
Publicado el 10,octubre 2005 - 16:41
Moi aussi je fais un controle d'index a chaque ouverture.
Grand probleme avec la mise en veille. C'est un le probleme du Pocket PC.
Publicado el 10,octubre 2005 - 17:12
Bonjour,
Julien, début Août avait donné une routine pour occulter la mise en veille du pocket pendant l'exécution d'un programme Windev. Cette routine ne fonctionne pas?
Fonction donnée par Julien :
1°) Voici le code du timer :
IF gbLockScreenSaver = True THEN
// Permet d'éviter que le Pocket se mette en shutdown
// 25secondes, car le minimum est de 30s pour le passage en mode vieille
TimerSys("gProc_CancelAutoShutdown",2500,2)
END


2°) Et le code de procédure locale
PROCEDURE gProc_CancelAutoShutdown()

API("coredll.dll","SystemIdleTimerReset")
Amitiés
JPM
Publicado el 11,octubre 2005 - 09:48
S'il y avait un moyen d'empecher d'eteindre le pocket pc tant qu'une application est ouverte (avec bien sur une info pour demander la fermeture de l'appli pour eteindre le pocket pc) cela serait parfait et resoudrait tous les problemes.
Publicado el 14,octubre 2005 - 10:37
La solution qui existe pour l'instant est donc l'empechement de la fermeture d'une appli par un timer qui declenche l'API correspondante. Seul l'eclairage de l'ecran s'eteint: celui-ci on ne peut pas l'empecher mais ca n'a aucune importance au contraire.
Publicado el 14,octubre 2005 - 11:17
En effet, c'est ce vers quoi j'oriente mes recherches, mais pour l'instant,
je n'ai pas trouvé de moyen "simple" d'intercepter l'évennement système. A
priori un tel dév se situe au niveau "device OEM" et je doute qu'une
application puisse le faire même via les API windows !
Mais ça vaut le coup d'y regarder de plus près.

Merci pour votre aide.
Publicado el 14,octubre 2005 - 12:28
Après pas mal de tests avec les fonctions "RequestPowerNotifications" et les
messages de broadcast du Power Manager, il s'avère qu'on peut effectivement
détecterles transitions d'état du PM mais pas les intercepter suffisament
"rapidement" pour empêcher par exemple la mise en veille par le bouton !

Donc je crains que'il n'y ait pour l'instant aucune solution, si ce n'est de
voir du côté de PCSoft s'ils peuvent nous aider.
En fait, je n'arrive jamais à reproduire le problème avec une séquence
particulière, cela arrive sans qu'on sache comment !?

Je vais certainement devoir essayer de stocker les fichiers en modification,
dans la RAM du Pocket (s'il y a assez de place) et les fichiers en lecture
seule (les plus gros) sur la carte SD.

Je confirme aussi que lorsque les fichiers sont en RAM et non sur SD, IL N'Y
A JAMAIS DE PB !!!!!!!!!

Si vous avez des idées, des pistes, ....

Merci.
José
Publicado el 14,octubre 2005 - 12:39
Salut,
Je ne comprends pas bien ton idée !? De quelle API parles-tu ?
Publicado el 17,octubre 2005 - 11:01
Désolé de te contredire, mais j'ai les memes phénomenes, -d'une maniere plus
aléatoire- sur la RAM.
"José IANEZ" <jianez@bisico.fr> a écrit dans le message de news:
434f5787@news.pcsoft.fr...

Après pas mal de tests avec les fonctions "RequestPowerNotifications" et
les
messages de broadcast du Power Manager, il s'avère qu'on peut
effectivement
détecterles transitions d'état du PM mais pas les intercepter suffisament
"rapidement" pour empêcher par exemple la mise en veille par le bouton !

Donc je crains que'il n'y ait pour l'instant aucune solution, si ce n'est
de
voir du côté de PCSoft s'ils peuvent nous aider.
En fait, je n'arrive jamais à reproduire le problème avec une séquence
particulière, cela arrive sans qu'on sache comment !?

Je vais certainement devoir essayer de stocker les fichiers en
modification,
dans la RAM du Pocket (s'il y a assez de place) et les fichiers en lecture
seule (les plus gros) sur la carte SD.

Je confirme aussi que lorsque les fichiers sont en RAM et non sur SD, IL
N'Y
A JAMAIS DE PB !!!!!!!!!

Si vous avez des idées, des pistes, ....

Merci.
José

Publicado el 17,octubre 2005 - 11:02
Si vous regardez le newsgroup vous verrez que plusieurs developpeurs ont constate la meme chose.
Pour ma part le gros probleme de l'utilisation du pocket c'est cette impossibilite de fermer le pocket avec une appli Windev ouverte.
Si cela n'est pas resolu l'utilisation du Pocket PC restera aleatoire et plein d'insecurite quand aux fichiers. C'est je pense un des elements le plus important a resoudre avec le blocage de l'application avec un lien Wi-fi momentanement coupe.
Publicado el 17,octubre 2005 - 12:01
Je me suis mal exprimer: je veux dire par exemple j'ouvre une application Windev je travaille sur les fichiers je la laisse ouverte et j'appuie sur le bouton du Pocket PC pour eteindre completement le Pocket PC. Si je l'ouvre de nouveau mon appli d'une facon aleatoire se trouvant sur RAM ou SD Card se trouve bloque et je suis oblige de faire un reset. D'autre part d'une facon aleatoire l'index du fichier est alors aussi corrompue et doit etre reindexe.
C'est pourquoi comme sur un PC quand on a une application d'ouverte on devrait avoir une fenetre qui s'affiche pour empecher l'extinction du Pocket par son bouton (qui est sur la machine).
Publicado el 17,octubre 2005 - 13:33
Salut 'braun',

Te serait-il possible de me donner plus de détails sur ce que tu entends par
"ompossibilité de fermer le pocket avec une appli Windev ouverte" ? En effet
tes connaissances en la matière seraient plus utiles à tout le monde, si tu
voulais bien passer quelques secondes de + à donner des détails !
Pour ma part, j'arrive tout à fait à "fermer le pocket" (je pense que tu
veux dire le mettre en veille !??), lorsque mon application Windev est en
mémoire !? Donc quel est le problème que tu décris ?
D'autre part, je suis en train de tester une version où les fichiers sont
sur carte SD et chaque écriture étant suiuie de l'appel à hForceEcriture, et
pour l'instant, cela semble assez stable ! Mais il faut attendre le retour
terrain des utilisateurs pour valider cette fonction !

Merci de vos efforts.
José
Publicado el 17,octubre 2005 - 16:14
Je teste sur un Pocket 400MHZ Mobile 2003 1ere edition IPAQ 2210.
Je vais tester cette solution HforceEcriture.
Publicado el 17,octubre 2005 - 17:03
Ok, merci pour les détails.

Une remarque cependant :
Le Pocket PC n'est jamais complètement éteint. Le bouton on/off ne fait que
le passer du mode veille au mode "allumé". Dans le mode veille, très peu de
process continuent à tourner, mais certains événements (souvent d'ordre
matériel), réveillent le Pocket (ex: appel téléphonique entrant, alarme,
réception d'un SMs, etc.). Par contre, aucun timer ne continue à tourner
dans une application.

Aussi, pour éviter au maximum tout problème de perte de données dans les
fichiers HF, lors du passage en mode veille, je conseille de fermer
systématiquement les fichiers ouverts après leur modification et d'utiliser
hForceEcriture !
De plus, il n'est pas normal d'avoir un blocage de ton application lors du
"réveil" du Pocket. Le fait de réinitialiser ton appli à ce moment là,
provoque effectivement un problème d'index !

De mon côté, je n'ai jamais eu de blocage de mon application lors de
l'utilisation du bouton de veille ! Le seul phénomère aléatoire est un
problème lors du réveil sur les index des fichiers auparavant modifiés !

Merci et bon courage.
Publicado el 17,octubre 2005 - 19:35
Pour ma part, j'ai testé la méthode "boeuf":
J'ouvre les fichiers HF de l'application avant chaque accès, et je les ferme immédiatement après. De cette façon les fichiers ne sont ouverts que lors des accès ( lecture ou écriture ).
A priori je n'ai plus de problème d'indexes vérolés. A suivre donc...

Frédéric.
Publicado el 18,octubre 2005 - 18:45
Salut,

C'est aussi ce que je fais depuis quelques temps, avec en + un
hForceEcriture après chaque hAjoute ou hModifie, et pour l'instant, pas de
PB !
Il serait interessant de "remonter" les résultats de tes tests dans ce forum
!

Merci de ta participation.
Publicado el 04,noviembre 2005 - 10:35
Bonjour à tous,

Je reviens dans cette conversation comme promis pour faire part des
résultats de mes essais.
Depuis que j'utilise la fonciton hForceEcriture après chaque hAjoute et
hModifie, il semble que les soucis d'index aient disparus !

Mes commerciaux utilisent cette version depuis maintenant une dizaine de
jours et aucune erreur ne m'a été remontée ! On peut donc considérer qu'il y
a une nette amélioration voire même une correction totale du Pb !

Si d'autres personnes ont des résultats de tests, merci de les publier.

José