工控编程吧
标题:
258上位机VC MFC使用ODBC进行条件排序
[打印本页]
作者:
qq263946146
时间:
2016-4-23 21:27
标题:
258上位机VC MFC使用ODBC进行条件排序
(, 下载次数: 3)
上传
点击文件名下载附件
258上位机VC MFC使用ODBC进行条件排序
功能展示
排序是数据库常用的操作,我们当前例程实现对数据库记录集进行排序的功能,通过组合框设置排序条件,再执行排序可以使记录集以一定顺序显示,效果如图;
要点提示
例程的排序功能主要是通过Crecordset类的成员变量m_strSort来实现,此变量赋予不同的值,将以不同的方式排序;
另外一个要注意的函数是Crecordset类的Open()函数;函数原型为 virtual BOOL Open( UINT nOpenType = AFX_DB_USE_DEFAULT_TYPE, LPCTSTR lpszSQL = NULL, DWORD dwOptions = none );
nOpenType 为记录集的打开方式,默认为snapshot;
lpszSQL默认为空字符串,还可以是一个SQL的SELECT语句, 可以带WHEERE或ORDER BY条件,或是一个CALL语句,通过 CALL语句可以调用SQL存储过程;
dwOptions ,打开记录集参数,默认为NONE,该参数可以取如下 值,以及如下值的组合, CRecordset::none , CRecordset::appendOnly , CRecordset::readOnly , CRecordset:
ptimizeBulkAdd , CRecordset::useMultiRowFetch , CRecordset::skipDeletedRecords , CRecordset::useBookmarks , CRecordset::noDirtyFieldCheck , CRecordset::executeDirect , CRecordset::useExtendedFetch , CRecordset::userAllocMultiRowBuffers ,这些值的具体介绍可以查询MSDN手册;
实现功能
1.按照前面例程或当前视频中的方法,用根目录的Student.mdb创建数据源;
2.新建一个应用前面数据源的基于单文档的应用程序,具体过程可参考视频学习;
3.按程序界面,添加三编辑框,ID分别为IDC_EDIT_ID, IDC_EDIT_NAME,IDC_EDIT_GRADYEAR,分别关联SET类中的三个变量 m_ID; m_Name;m_GradYear
添加按钮<执行 排序>,关联函数
void CGkbc8View::OnButtonSort()
{
m_pSet->Close();//关闭记录集
int nIndex=m_ComSort.GetCurSel();//得到下拉组合框所选项目序号
m_ComSort.GetLBText(nIndex,m_Sort);//得到下拉组合框所选项目文本
if(m_Sort=="学号")
{
m_pSet->Close();//关闭记录集
m_pSet->m_strSort="ID";//按照序号排序
//根据打开方式排序记录集
m_pSet->Open(CRecordset::snapshot,NULL,CRecordset::readOnly);
m_pSet->MoveFirst();//移动到第一条记录
UpdateData(FALSE);//更新对话框
}
if(m_Sort=="姓名")
{
m_pSet->Close();
m_pSet->m_strSort="Name";//按照姓名排序
//根据打开方式排序记录集
m_pSet->Open(CRecordset::snapshot,NULL,CRecordset::readOnly);
m_pSet->MoveFirst();//移动到第一条记录
UpdateData(FALSE);//更新对话框
复制代码
}
if(m_Sort=="毕业时间")
{
m_pSet->Close();
m_pSet->m_strSort="GradYear";//按照毕业时间进行排序
//根据打开方式排序记录集
m_pSet->Open(CRecordset::snapshot,NULL,CRecordset::readOnly);
m_pSet->MoveFirst();//移动到第一条记录
UpdateData(FALSE);//更新对话框
}
}
复制代码
4.添加组合框IDC_COMBO1,关联两变量 CComboBox m_ComSort; CString m_Sort;,并初始化组合框,向组合框内添加些文本 m_ComSort.InsertString(0,"学号");
m_ComSort.InsertString(0,"姓名");
m_ComSort.InsertString(0,"毕业时间");
m_ComSort.SetCurSel(0);
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/8a977b29dec700c2acc42998e90288f2/0/0/w_19rt5s0n9d.swf-albumId=5740212909-tvId=5740212909-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4