palmgaulois
14/06/2007 à 12: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 ?
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
15/06/2007 à 10:44
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 ?
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
18/06/2007 à 14:18
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.