SQLから行を選択し、CRecordSet内に配置する必要があります。
CRecordSetは、それらを日付でソートして保持する必要があります。
SQLクエリで「日付順に並べ替える」か、CRecordSet内で並べ替えるか、オブジェクトのCArrayに移動してCArrayを並べ替える必要がありますか?
SQLクエリで並べ替えることはできますか?CRecordsetに挿入すると、順序は同じままになりますか?
ありがとう !
はい、レコードセットを選択するときは「日付順に並べ替える」必要があります。そうすれば、CRecordsSetでそのように順序付けられます。
CRecordsetを並べ替えても、データベース内の順序には影響しません。行はキーによって「順序付け」されます。物理データベースには(意味のある)順序はありません。'date'キーがある場合、ORDER BY DATE句は(うまくいけば)そのキーを使用できるため、より高速に実行されます。そうでない場合は、それらがソートされるため、少し遅くなります。ただし、どちらの方法でも、CRecordsetはソートされて表示されます。
インデックスやORDERBY句を使用すると、いつでも任意の順序でレコードが提供されるため、レコードをディスク上で「ソートされたまま」にする必要はありません。レコードを取得するたびに「ORDERBYDATE」と言うだけで、レコードは常に...よく...日付順に並べられているように見えます;-)
配列に移動して並べ替える限り、可能であれば、SQLデータベースに作業を任せてください。あなたがそれをサーバー上に保持することができれば-おそらくより多くのメモリなどを持っています-さらに良いです。メモリ内のレコードをローカルで並べ替えるという非常に特殊なケースがあるかもしれませんが、これはそのようには見えません。
お役に立てば幸いです。