Avec CPDB, il est très simple d'effectuer une recherche sur n'importe quel champ de votre base. Rechercher une valeur de chaine sur 7000 enregistrements ne prend pas plus que 4 secondes* !
* test effectué sur un fichier de code postaux sur un Palm IIIxe : Recherche jusqu'au dernier enregistrement
La première méthode consiste à effectuer une recherche générique, une chaine de caractère est utilisée. Vous devrez convertir en chaine de caractère si vous recherchez une valeur numérique.
Utilisez l'exemple suivant :
Err err; Boolean bTrouve;
err = CPDB_Recherche(mydbHandle, "NOMDUCHAMPS", "1234", CPDB_SEARCH_FROMCURRENT); err = CPDB_EstTrouve(mydbHandle, &bTrouve); |
Le booléen bTrouve contient vrai si la recherche a trouvé un enregistrement correspondant au critère passé.
Veuillez noter que vous pouvez remplacer le paramètre CPDB_SEARCH_FROMCURRENT par :
- CPDB_SEARCH_REVERSE
- CPDB_SEARCH_FROMCURRENT
- CPDB_SEARCH_WITHIN
- CPDB_SEARCH_CASELESS
Ce paramètre vous permettra de rechercher tous les enregistrement selon une valeur spécifique. Utilisez simplement CPDB_SEARCH_FROMBEGIN pour commencer la recherche à partir du 1er enregistrement et passez au suivant en utilisant CPDB_SEARCH_FORMCURRENT. Voici un exemple qui présente ce parcours :
Err err; Boolean bTrouve;
err = CPDB_Recherche(mydbHandle, "NOMDUCHAMPS", "1234", 0); err = CPDB_EstTrouve(mydbHandle, &bTrouve);
while ( bTrouve == true && err == 0 ) { // Placez votre traitement ici // ... // Enregistrement suivant err = CPDB_Recherche(mydbHandle, "NOMDUCHAMPS", "1234", CPDB_SEARCH_FROMCURRENT); if (err == 0) err = CPDB_EstTrouve(mydbHandle, &bTrouve); } |
Pour effectuer une recherche typée, utilisez :
- CPDB_RechercheNumerique : Recherche dans la base de données avec une valeur numérique
Note : La taille de la valeur est Int32. Si vous devez rechercher un champs SHORTINT ou INT la conversion est faite de manière implicite.
Pour obtenir de bonnes performances lors de vos recherches ou de vos parcours, vous devrez au préalable trier votre base de données selon un champs spécifique.
Utilisez l'exemple suivant :
err = CPDB_Trier(mydbHandle, "NOMDUCHAMPS", CPDB_SORT_ASC);
Vous pouvez utiliser CPDB_SORT_DESC pour inverser l'ordre de recherche.
Attention : Pour une grosse base de données, une opération de tri peut s'avérer longue. Nous vous conseillons alors d'afficher une message d'attente. Pour l'exemple des codes postaux avec 7000 enregistrements : le tri de tous les enregistrements prend un peu moins de 10 secondes sur un Palm IIIxe.
CPDB_Recherche
CPDB_RechercheNumerique
CPDB_EstTrouve
CPDB_Trier
Date de création : 01/10/2003 @ 06:49
Dernière modification : 01/10/2003 @ 07:36
Catégorie : CPDB librairie
Page lue 9240 fois
|