欢迎投稿

今日深度:

Visual C++中用MFC ODBC操作Access数据库(1)(2)

4、实现程序的添加、修改和删除记录的功能

在实现上述功能之前,需要按“插入->资源->DIALOG->新建”建立一个新的对话框(与图1所示对话框类似),以建立添加、修改的对象。并为此对话框建立一个基于CDialog基础类的新的类CAddDlg。其ID为IDD_DIALOG1。

然后在JhView.cpp中加“#include "AddDlg.h"”,并为“添加记录IDC_ADD)”键编写程序代码如下。其中已经作了详细的注解。

  1. void CJhView::OnAdd()   
  2.  
  3. {  
  4.  
  5. //建立一个新的添加对话框  
  6.  
  7. CAddDlg dlg;   
  8.  
  9. if(dlg.DoModal()==IDOK)  
  10.  
  11. {  
  12.  
  13. //增加一条新的记录  
  14.  
  15. m_pSet->AddNew();   
  16.  
  17. //把对话框中的记录传递到记录集中  
  18.  
  19. m_pSet->m_baudrate=dlg.m_br;  
  20.  
  21. m_pSet->m_type=dlg.m_ty;  
  22.  
  23. m_pSet->m_unit=dlg.m_un;  
  24.  
  25. m_pSet->m_number=dlg.m_nu;  
  26.  
  27. m_pSet->m_address=dlg.m_add;  
  28.  
  29. m_pSet->m_istart=dlg.m_is;  
  30.  
  31. m_pSet->m_iend=dlg.m_ie;  
  32.  
  33. m_pSet->m_ostart=dlg.m_os;  
  34.  
  35. m_pSet->m_oend=dlg.m_oe;  
  36.  
  37. m_pSet->Update(); //把新的记录存在数据源里  
  38.  
  39. m_pSet->MoveLast(); //指定当前记录为最后一条记录  
  40.  
  41. UpdateData(false); //清空已输入内容  
  42.  
  43. }  
  44.  

添加记录部分,应该先读出当前的记录,使其显示在添加/修改对话框中,即:

  1. dlg.m_br=m_pSet->m_baudrate;  
  2.  
  3. dlg.m_ty=m_pSet->m_type;  
  4.  
  5. dlg.m_un=m_pSet->m_unit;  
  6.  
  7. dlg.m_nu=m_pSet->m_number;  
  8.  
  9. dlg.m_add=m_pSet->m_address;  
  10.  
  11. dlg.m_is=m_pSet->m_istart;  
  12.  
  13. dlg.m_ie=m_pSet->m_iend;  
  14.  
  15. dlg.m_os=m_pSet->m_ostart;  
  16.  
  17. dlg.m_oe=m_pSet->m_oend; 

余下的与添加记录代码相同,除了不要定位“m_pSet->MoveLast();”而已。

删除记录只是需要使用Delete()成员函数删除当前记录之后移到下一个记录即可。程序清单如下:

  1. void CJhView::OnDel()   
  2.  
  3. {  
  4.  
  5. try//试着删除一条记录  
  6.  
  7. {  
  8.  
  9. m_pSet->Delete();  
  10.  
  11. }  
  12.  
  13. catch(CDBException*error)  
  14.  
  15. {  
  16.  
  17. AfxMessageBox(error->m_strError);  
  18.  
  19. error->Delete();  
  20.  
  21. m_pSet->MoveFirst();  
  22.  
  23. UpdateData(FALSE);  
  24.  
  25. return;  
  26.  
  27. }  
  28.  
  29. //移到下一个记录  
  30.  
  31. m_pSet->MoveNext();  
  32.  
  33. //测试是否为文件末尾,是,则使用MoveLast(),而不是使用MoveNext()  
  34.  
  35. if(m_pSet->IsEOF())  
  36.  
  37. m_pSet->MoveLast();  
  38.  
  39. UpdateData(FALSE);  
  40.  

对多个记录集的操作与对单个记录集的操作类似,只是增加了CRecordSet类的派生类。

总结:

MFC ODBC让开发人员仅仅使用很少的代码就可以完成复杂的数据库访问,并可以对数据库中的内容方便的实现添加、修改、删除等操作,从而极大地减少了软件开发的工作量,缩短了开发周期,提高了效率。而且MFC ODBC简单易学,能实现大部分ODBC API函数的功能,所以了解和掌握MFC ODBC技术,将会给大型数据库应用软件带来清晰、快捷、方便等功能。


www.htsjk.Com true http://www.htsjk.com/shujukukf/17014.html NewsArticle 4、实现程序的添加、修改和删除记录的功能 在实现上述功能之前,需要按插入-资源-DIALOG-新建建立一个新的对话框(与图1所示对话框类似),以建立添加、...
评论暂时关闭