Recordset : tri d'enregistrements (ODBC)
Cette rubrique s'applique aux classes ODBC MFC.
Cette explique comment trier le recordset. Vous pouvez définir une ou plusieurs colonnes à partir desquelles effectuer le tri, et choisir un ordre de tri ascendant ou descendant (ASC ou DESC, ASC étant la valeur par défaut) pour chaque colonne. Par exemple, si vous indiquez deux colonnes, les enregistrements sont d'abord triés sur la première colonne, puis sur la seconde. La clause SQL ORDER BY définit une instruction de tri. Quand l'infrastructure ajoute la clause ORDER BY à la requête SQL du recordset, la clause contrôle le tri de la sélection.
Vous devez établir un ordre de tri du recordset après avoir construit l'objet mais avant d'appeler sa fonction membre Open (ou la fonction membre Requery d'un objet recordset existant dont la fonction membre Open a été appelée préalablement).
Pour définir l'ordre de tri d'un objet recordset
Construisez un nouvel objet recordset (ou préparez l'appel de Requery dans le cas d'un objet existant).
Définissez la valeur du membre de données m_strSort de l'objet.
L'instruction de tri est une chaîne terminée par le caractère NULL. Elle contient le contenu de la clause SQL ORDER BY mais non le mot clé ORDER BY. Par exemple, utilisez
recordset.m_strSort = "LastName DESC, FirstName DESC";
not
recordset.m_strSort = "ORDER BY LastName DESC, FirstName DESC";
Définissez les autres options nécessaires, comme le filtre, le mode de verrouillage ou les paramètres.
Appelez la fonction Open pour un nouvel objet (ou Requery pour un objet existant).
Les enregistrements sélectionnés sont triés conformément à l'instruction définie. Par exemple, pour trier un ensemble d'étudiants par ordre décroissant sur le nom, puis sur le prénom, écrivez le code suivant :
// Construct the recordset
CStudentSet rsStudent( NULL );
// Set the sort
rsStudent.m_strSort = "LastName DESC, FirstName DESC";
// Run the query with the sort in place
rsStudent.Open( );
Le recordset contient tous les étudiants, triés par ordre décroissant (de Z à A) sur le nom, puis sur le prénom.
Notes
Si vous choisissez de substituer la chaîne SQL par défaut du recordset en passant votre propre chaîne SQL à la fonction Open, ne définissez pas de tri lorsque votre chaîne personnalisée contient une clause ORDER BY.