- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库基本概念-Read
8.1.1. 数据模型 8.1.1. 数据模型 8.1.2. Visual C++对数据库的支持 8.2.1. MFC 的ODBC编程过程 8.2.1. MFC 的ODBC编程过程 2. 创建ODBC数据源 8.2.1. MFC 的ODBC编程过程 3. 在MFC AppWizard中选择数据源 8.2.1. MFC 的ODBC编程过程 (4) 保留其他默认选项,单击[OK]按钮,从中选择要使用的表score。 8.2.1. MFC 的ODBC编程过程 4. 设计浏览记录界面 8.2.1. MFC 的ODBC编程过程 (2)按快捷键Ctrl+W,弹出MFC ClassWizard对话框,切换到Member Variables页面,在Class name框中选择CEx_ODBCView,为上述控件添加相关联的数据成员。例如,双击IDC_STUNO,在弹出的“Add Member Variable”对话框中的成员变量下拉列表中选择要添加的成员变量名m_pSet-m_studentno,选择后,控件变量的类型将自动设置,如图所示。 8.2.1. MFC 的ODBC编程过程 (3)按照上一步骤的方法,为上表所示的其他控件依次添加相关联的成员变量。需要说明的是,控件变量的范围和大小应与数据表中的字段一一对应。 8.2.1. MFC 的ODBC编程过程 (4) 编译运行并测试,结果如图所示。 8.2.2. ODBC数据表更新 8.2.2. ODBC数据表更新 (4) 单击[OK]按钮,弹出如图所示的“Select Database Tables”对话框,从中选择要使用的表。 8.2.3. MFC的ODBC类 8.2.3. MFC的ODBC类 (2) 打开MFC ClassWizard对话框,为控件IDC_EDIT_QUERY添加关联变量m_strQuery。 8.2.3. MFC的ODBC类 m_pSet-AddNew(); // 在表的末尾增加新记录 m_pSet-SetFieldNull((m_pSet-m_studentno), FALSE); // 设定m_studentno值不为空(NULL) m_pSet- m_studentno = ...... // 输入新的字段值 m_pSet-Update(); // 将新记录存入数据库 m_pSet-Requery(); // 刷新记录集,这在快照集方式下是必须的 8.2.3. MFC的ODBC类 m_pSet-Edit(); // 修改当前记录 m_pSet-m_name=刘向东; // 修改当前记录字段值 ...... m_pSet-Update(); // 将修改结果存入数据库 m_pSet-Requery(); 8.3.1 显示记录总数和当前记录号 static UINT indicators[] = { ID_SEPARATOR, // 第一个信息行窗格 ID_SEPARATOR, // 第二个信息行窗格 ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; 8.3.1 显示记录总数和当前记录号 BOOL CEx_ODBCView::OnCommand(WPARAM wParam, LPARAM lParam) { CString str; CMainFrame* pFrame = (CMainFrame*)AfxGetApp()-m_pMainWnd; // 获得主框架窗口的指针 CStatusBar* pStatus = pFrame-m_wndStatusBar; // 获得主框架窗口中的状态栏指针 if (pStatus){ CRecordsetStatus rStatus; m_pSet-GetStatus(rStatus); // 获得当前记录信息 str.Format(当前记录:%d/总记录:%d,1+rStatus.m_lCurrentRecord, m_pSet-GetRecordCount()); pStatus-SetPaneText(1,str); // 更新第二个窗格的文本 } return CRecordView::OnCommand(wParam, l
文档评论(0)