レコードセット: レコードの並べ替え (ODBC)
このトピックの内容は、MFC ODBC クラスに該当します。
このトピックでは、レコードセットを並べ替える方法について説明します。 並べ替えの基準となる列を 1 つ以上指定し、指定した列ごとに昇順または降順 (ASC または DESC、ASC が既定値) を指定することができます。 たとえば、2 つの列を指定した場合、レコードはまず最初に指定した列で並べ替えられ、次に 2 つ目に指定した列で並べ替えられます。 並べ替えは、SQL の ORDER BY 句を使って定義します。 フレームワークによってレコードセットの SQL クエリに ORDER BY 句が付加されると、この句によって選択の順序が制御されます。
オブジェクトを構築した後、その Open
メンバー関数を呼び出す前に (または Open
メンバー関数が以前に呼び出された既存のレコードセット オブジェクトの Requery
メンバー関数を呼び出す前に) レコードセットの並べ替え順序を確立する必要があります。
レコードセット オブジェクトの並べ替え順序を指定するには
新しいレコードセット オブジェクトを構築します (または、既存のものに対して
Requery
を呼び出す準備をします)。オブジェクトの m_strSort データ メンバーの値を設定します。
並べ替えは null 文字で終わる文字列です。 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) で並べ替えられます。
Note
独自の SQL 文字列を Open
に渡してレコードセットの既定の SQL 文字列をオーバーライドする場合、カスタム文字列に ORDER BY 句がある場合は、並べ替えを設定しないでください。
関連項目
レコードセット (ODBC)
レコードセット: パラメーターを利用したレコードセット (ODBC)
レコードセット: レコードのフィルター処理 (ODBC)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示