0

SQLから行を選択し、CRecordSet内に配置する必要があります。
CRecordSetは、それらを日付でソートして保持する必要があります。
SQLクエリで「日付順に並べ替える」か、CRecordSet内で並べ替えるか、オブジェクトのCArrayに移動してCArrayを並べ替える必要がありますか?

SQLクエリで並べ替えることはできますか?CRecordsetに挿入すると、順序は同じままになりますか?

ありがとう !

4

1 に答える 1

1

はい、レコードセットを選択するときは「日付順に並べ替える」必要があります。そうすれば、CRecordsSetでそのように順序付けられます。

CRecordsetを並べ替えても、データベース内の順序には影響しません。行はキーによって「順序付け」されます。物理データベースには(意味のある)順序はありません。'date'キーがある場合、ORDER BY DATE句は(うまくいけば)そのキーを使用できるため、より高速に実行されます。そうでない場合は、それらがソートされるため、少し遅くなります。ただし、どちらの方法でも、CRecordsetはソートされて表示されます。

インデックスやORDERBY句を使用すると、いつでも任意の順序でレコードが提供されるため、レコードをディスク上で「ソートされたまま」にする必要はありません。レコードを取得するたびに「ORDERBYDATE」と言うだけで、レコードは常に...よく...日付順に並べられているように見えます;-)

配列に移動して並べ替える限り、可能であれば、SQLデータベースに作業を任せてください。あなたがそれをサーバー上に保持することができれば-おそらくより多くのメモリなどを持っています-さらに良いです。メモリ内のレコードをローカルで並べ替えるという非常に特殊なケースがあるかもしれませんが、これはそのようには見えません。

お役に立てば幸いです。

于 2012-10-29T17:28:09.610 に答える