龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

一个好用的VC DBGRID[图](4)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
COdbcDBGRIDFILE::COdbcDBGRIDFILE(CGridCtrl *pGrid , CDatabase *pDatabase, CString strSql, CString strFilePath),其中的参数的含义如下 CGridCtrl *pGrid-------是一个指向CGridCtrl的指针

   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,并且用这个类做了一个样例,就是文章篇头提供的配套代码二。

精彩图集

赞助商链接