CPDB.Net

https://cpdb.ppcompiler.org/

6- Fonctions de tri et de recherche (CPDB librairie)



Introduction

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


 

Recherche générique

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 :



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);
}

Recherche typée


Pour effectuer une recherche typée, utilisez :



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.


 


Trier votre base de données


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.


 


Plus d'information


CPDB_Recherche


CPDB_RechercheNumerique


CPDB_EstTrouve


CPDB_Trier