Aide - Recherche - Membres - Calendrier
Version complète : recordset pour afficher premieres valeurs d'une table
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS > Développement HB++
palmgaulois
J'ai une table de 14000 enregistrement avec des nom qui vont de "0" à "9" puis " A" à " Z" puis "A" à "Z"

si je fais un db_contact.OpenRecordset "UniqueID>0 ORDER BY zNom ASC"

forcément ça prend des minutes à rendre la main,
avant de passer à l'affichage ou je ne garde que les 50 premiers qui arrivent

avant de transformer tout mon soft ( j'ai 5 tables du genre) avec l'exemple simpleGrid - LargeDB, je voulais savoir s'il est possible dés OpenRecordset de n'afficher que les x premiers enregistrement ( "0" à "9" puis " A" )

une idée pour gagner en vitesse ?
lolo
Si la table n'est pas editee, le plus simple est de la trier une bonne fois pour toute.

Si elle est editee sur le palm, ça se complique.

Tu peux trier la table au depart et l'acceder a travers openrecorset. Mais, apres chaque insertion (ou modification!) d'un record, tu fermes le recordset, tu ouvre la table en lowlevel, tu retrouves le nouveau record avec son uniqueID et tu le place au bon endroit pour que la table reste triee (en parcourant la table de façon dichotomique, c'est tres rapide). Ensuite tu peux reouvrir la table avec le openrecorset.

Loic
poolpy
CITATION(palmgaulois @ 14/06/2007 à 13:55 ) *
J'ai une table de 14000 enregistrement avec des nom qui vont de "0" à "9" puis " A" à " Z" puis "A" à "Z"

si je fais un db_contact.OpenRecordset "UniqueID>0 ORDER BY zNom ASC"

forcément ça prend des minutes à rendre la main,
avant de passer à l'affichage ou je ne garde que les 50 premiers qui arrivent

avant de transformer tout mon soft ( j'ai 5 tables du genre) avec l'exemple simpleGrid - LargeDB, je voulais savoir s'il est possible dés OpenRecordset de n'afficher que les x premiers enregistrement ( "0" à "9" puis " A" )

une idée pour gagner en vitesse ?


Pourquoi tu ne mets pas simplement dans ta requête un critère qui ne sélectionne que les enregistrements qui t'intéressent ?
snark
Je pense que PalmGaulois voudrait un "Retrieve as needed" tel qu'implémenté dans certains langages de programmation. Tu définis ta requête complète mais en interne, le logiciel crée un curseur et récupère uniquement les données qui sont affichées dans la liste.
palmgaulois
CITATION(poolpy @ 15/06/2007 à 11:44 ) *
Pourquoi tu ne mets pas simplement dans ta requête un critère qui ne sélectionne que les enregistrements qui t'intéressent ?


c'est justement là dessus que je but, extraire des 14000 record les 50 premiers par ordre alphabetiques.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.