PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV Mobile 2024 → [WM14] Rapidité affichage table
[WM14] Rapidité affichage table
Iniciado por Pascal, out., 15 2009 11:38 AM - 1 resposta
Publicado em outubro, 15 2009 - 11:38 AM
Bonjour,

J'ai une application qui affiche une table suivant 2 critéres (théme et activité),
Mais lors de l'affichage, celle ci met prés de 1min voire 1min30s à s'afficher. (Au maximum je peux avoir 20.000 enregistrements)

Y'a t-il un moyen d'accélerer le process ou est-ce limité du fait du PDA?
Car en mode test sur le pc cela ne prend que quelques secondes...

Cela prend du temps car je pense qu'il doit parcourir toute la table, il y a peut etre des optimisations à faire au niveau SQL???

mon code:
SELECT oeuvre.ov_titre AS Titre, oeuvre.ov_stitre AS Sous_titre, objet.ob_collection AS Collection,oeuvre.ov_id AS ov_id
FROM
objet,oeuvre,theme
WHERE
oeuvre.ov_objet = objet.ob_id
AND objet.ob_theme = theme.th_id
AND
( objet.ob_activite = {Param1}
AND objet.ob_theme IN ({Param4})
)
ORDER BY Titre ASC

Si quelqu'un a une solution?

Merci
Publicado em novembro, 04 2009 - 7:49 AM
Il faut aller voir du cote des procedures stocke. Les procedure stocke sont localise sur le serveur et ne renvois qu'un seule fois l'information sous forme d'une seule variable de type chaine. C'est tres rapide et fonctionne tres bien.

Vous pouver utiliser des charateres tel ; pour separer les champs et "cr" pour seraper les record.

exemple du cote de procedure stocke :

contactes est un chaîne
HLitPremier(sdREQContact)
TANTQUE HTrouve(sdREQContact)

contactes = contactes + sdREQContact.NOM + ";" + sdREQContact.CELL + ";" + sdREQContact.TEL_BUREAU + ";" + sdREQContact.TEL_AUTRES + CR

HLitSuivant(sdREQContact)
i++
FIN


du cote du mobile :

OuvreFille(FEN_Patienter)
textes est une chaîne
textes = HExécuteProcédure(MaConnexion,"Collection_WEBDVD_1.Nouvelle_Procédure1",SAI_Saisie1,SAI_Saisie2)

TableSupprimeTout(TABLE_Table1)

POUR i = 1 A ChaîneOccurrence(textes,CR)


TableAjouteLigne(TABLE_Table1, ExtraitChaîne(ExtraitChaîne(textes,i,CR),1,";"),ExtraitChaîne(ExtraitChaîne(textes,i,CR),2,";"),ExtraitChaîne(ExtraitChaîne(textes,i,CR),3,";"),ExtraitChaîne(ExtraitChaîne(textes,i,CR),4,";"))


FIN