WEB开发网
开发学院软件开发VC 一个好用的DBGRID 阅读

一个好用的DBGRID

 2010-06-04 20:37:47 来源:WEB开发网   
核心提示:在上面的代码中,调用了COdbcDBGRIDFILE的构造函数,一个好用的DBGRID(4),它的原型是COdbcDBGRIDFILE::COdbcDBGRIDFILE(CGridCtrl *pGrid , CDatabase *pDatabase, CString strSql, CString strFilePat

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

本文配套源码

上一页  1 2 3 4 

Tags:一个 好用 DBGRID

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接