レコードセット: レコードの並べ替え (ODBC)

このトピックの内容は、MFC ODBC クラスに該当します。

このトピックでは、レコードセットを並べ替える方法について説明します。 並べ替えの基準となる列を 1 つ以上指定し、指定した列ごとに昇順または降順 (ASC または DESCASC が既定値) を指定することができます。 たとえば、2 つの列を指定した場合、レコードはまず最初に指定した列で並べ替えられ、次に 2 つ目に指定した列で並べ替えられます。 並べ替えは、SQL の ORDER BY 句を使って定義します。 フレームワークによってレコードセットの SQL クエリに ORDER BY 句が付加されると、この句によって選択の順序が制御されます。

オブジェクトを構築した後、その Open メンバー関数を呼び出す前に (または Open メンバー関数が以前に呼び出された既存のレコードセット オブジェクトの Requery メンバー関数を呼び出す前に) レコードセットの並べ替え順序を確立する必要があります。

レコードセット オブジェクトの並べ替え順序を指定するには

  1. 新しいレコードセット オブジェクトを構築します (または、既存のものに対して Requery を呼び出す準備をします)。

  2. オブジェクトの m_strSort データ メンバーの値を設定します。

    並べ替えは null 文字で終わる文字列です。 ORDER BY 句の内容は含まれますが、キーワード ORDER BY は含まれません。 たとえば、次のようなサービスを使います。

    recordset.m_strSort = "LastName DESC, FirstName DESC";
    

    not

    recordset.m_strSort = "ORDER BY LastName DESC, FirstName DESC";
    
  3. フィルター、ロック モード、パラメーターなど、必要な他のオプションを設定します。

  4. 新しいオブジェクトの場合は 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)