一个好用的DBGRID
2010-06-04 20:37:47 来源:WEB开发网在上面的代码中,调用了COdbcDBGRIDFILE的构造函数,它的原型是
COdbcDBGRIDFILE::COdbcDBGRIDFILE(CGridCtrl *pGrid , CDatabase *pDatabase, CString strSql, CString strFilePath),其中的参数的含义如下
CGridCtrl *pGrid-------是一个指向CGridCtrl的指针
CDatabase *pDatabase------是一个指向Cdatabase的指针,你必须把一个已经连接好的Cdatabase的对象传递进去。
CString strSql------是一个查询语句,如select * from emp;
CString strFilePath-----是一个用于生成内存映射文件的文件的路径
步骤五
为CDemo2Dlg加入成员函数SetGridItem(pDispInfo),这个函数是CDemo2Dlg::OnNotify()中调用的,我们用它来设置显示记录数据。
void CDemo2Dlg::SetGridItem(GV_DISPINFO *pDispInfo)
{
/*
在这儿你可自己进行设置,如第一行为查询的字段中文名,
第一行为行的序号等,如果你不进行设置,那么默认会取每
个查询得到的字段名,每一行的序号
*/
m_pMapFile->SetGridText(pDispInfo);
/*
上面的函数只是用来得到了本来,你还可以用它来进行另
外一些属性,如当超过一定的值是显示DBGRID的不同的前
景色和前景色等
*/
}
步骤六
添加成员函数Release(),下面是它的代码,用于释放资源
void CDemo2Dlg::Release()
{
if(this->m_pMapFile)
{
m_pMapFile->Release();
m_db.Close();
delete m_pMapFile; m_pMapFile = NULL;
}
}
在上面的代码中 m_pMapFile->Release()是COdbcDBGRIDFILE的成员函数,用于释放所有的资源。
步骤七
添加对话框的消息响应函数OnClose(),释放所有资源
void CDemo2Dlg::OnClose()
{
this->Release();
CDialog::OnClose();
}
完成好上面的工作,你就可以编译运行了,在上面的编辑框上输入数据源名、用户名、口令和查询的sql语句,你就可以试试效果了,你可以找一张大一点的表,最好有几十万条记录来测试一下,这个DBGRID怎么样。
四、总结
使用这个DBGRID的好处在于我们在查询时,不需要进行先绑定的操作,而且它比微软的DBGRID控件方便多了,希望它能为我们用VC开发数据库项目提高一点效率。如果你看过上一篇文章,用类CMYODBC和CODBCSet来代替MFC的CDatabase和CRecordset的话,那么运行的效率会有很大的提高,我也写了一个相似的类CMyODBCDBGRIDFile,并且用这个类做了一个样例,就是文章篇头提供的配套代码二。
本文配套源码
更多精彩
赞助商链接