Набор записей. Сортировка записей (ODBC)
Данный раздел относится к классам ODBC библиотеки MFC.
В данном разделе описано, как проводить сортировку набора записей.Можно указать один или несколько столбцов, которые будут основой для сортировки, а также можно задать порядок возрастания или убывания сортировки (значение ASC или DESC; ASC — значение по умолчанию) для каждого выбранного столбца.Например, если выбрать два столбца, записи сортируются в первом указанном столбце, а затем во втором столбце.Предложение SQL ORDER BY задает сортировку.Если платформа добавляет предложение ORDER BY в SQL-запрос набора записей, то оно управляет порядком выборки.
Необходимо задать порядок сортировки набора записей после конструирования объекта, но перед вызовом его функции-члена Open (или перед вызовом функции-члена Requery существующего объекта набора записей, чья функция-член Open вызывалась перед этим).
Чтобы выбрать порядок сортировки для объекта набора записей, выполните следующие действия.
Сконструируйте новый объект набора записей (или подготовьте вызов функции-члена Requery существующего объекта).
Задайте значение элемента данных m_strSort объекта.
Строка сортировки — это строка с завершающим нулем.Она содержит предложение ORDER BY, но не ключевое слово ORDER BY.Например, используйте:
recordset.m_strSort = "LastName DESC, FirstName DESC";
not
recordset.m_strSort = "ORDER BY LastName DESC, FirstName DESC";
Задайте остальные параметры, например фильтр, режим блокировки и другие.
Вызовите функцию Open для нового объекта (или функцию Requery для существующего объекта).
Выбранные записи сортируются в указанном порядке.Например, для сортировки записей студентов в порядке убывания по фамилии, а затем по имени, следует выполнить следующие действия:
// 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( );
Набор записей, содержащий записи студентов, сортируется в порядке убывания (от Z до A) по фамилии, а затем по имени:
Примечание |
---|
Если разработчик решил переопределить строку SQL, передав свою строку SQL функции Open, не следует задавать сортировку, если в пользовательской строке содержится предложение ORDER BY. |