最近在做数据库的课设,原本对数据库的操作,用JAVA 来写是非常好的选择,但是,自己却选择了 MFC ,因为 JAVA 的已经做过一次了,语法什么的基本上没什么问题了,但是出于学习的目的,我采用了 MFC ,应该是丰富自己在这方面的知识吧。。。
排序,可以使得我们在提取数据获得极大的方便,一下是 MSDN 上的
本主题适用于 MFC ODBC 类。
本主题说明如何对记录集排序。可以指定一列或多列作为排序的依据,并且可以为每一指定的列指定升序或降序(ASC 或 DESC;ASC 为默认值)。例如,如果指定两列,则首先对第一个命名列的记录进行排序,然后对第二个命名列的记录进行排序。SQL ORDER BY 子句定义排序。框架向记录集的 SQL 查询追加 ORDER BY 子句后,该子句控制选定内容的排序。
必须在构造对象之后但尚未调用对象的 Open 成员函数之前(或在调用某个现有记录集对象的 Requery 成员函数之前,而该记录集的 Open 成员函数先前已被调用过)建立记录集的排序顺序。
为记录集对象指定排序顺序
-
构造一个新的记录集对象(或准备为现有对象调用 Requery)。
-
设置该对象的 m_strSort 数据成员的值。
排序是以 NULL 结尾的字符串。它包含 ORDER BY 子句的内容,但不包含关键字 ORDER BY。例如,使用:
而不是
-
设置所需的任何其他选项,如筛选器、锁定模式或参数。
-
为新对象调用 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 字符串传递给 Open 来重写记录集的默认 SQL 字符串,则当自定义字符串有 ORDER BY 子句时不应设置排序。 |
然后就是,交互的问题,MFC 在这方面还是做得有点复杂,写了很多代码实现交互的过程,总的来说就是一句话,
将存取的数据 放在共享区中, 然后就关联到空间上边的数据交换上去。。。
这部分不是很难做,我感觉还是如果不是用前边介绍的排序,在数据处理上边,做起来很是困难,毕竟有将近 8 个表啊。。。。
未完待续。。。