zoukankan      html  css  js  c++  java
  • VC++下封装ADO类以及使用方法

    操作系统:windows 7
    软件环境:visual studio 2008 、Microsoft SQL 2005
    本次目的:介绍一个已经封装的ADO类,简单说明怎么导入使用

          首先声明一下,这个封装的ADO类是在【vc知识库 】下载的,因为最近在数据库课程设计,所以对vc++下使用ADO连接数据库不是很了解,故若是本文有错误的地方的,请不吝指出。具体的ADO类各个封装功能请进入【原文地址 】查看。在此仅介绍使用此ADO封装类的入门,如连接数据库,显示记录等。一个测试例子如下:

    使用步骤:
    1.先从【这里 】下载封装的ADO类,可以用记事本之类的打开里面的文件,对于每个功能已经注释的蛮详细的;
    2.准备数据库,可以是SQL 2000 或更高的,在这里我是用SQL 2005,新建一个vc_sqlexample数据库一个student表,格式如下:
     
    3.具体的表内容可以随便写,然后新建MFC基于对话框工程(名称为测试1),右键工程名,添加封装的ADO类到工程里面;
    4.初始化 COM 环境,添加以下代码:

    [cpp] view plain copy
     
    1. /* 测试1.h */  
    2. class C测试1App : public CWinApp  
    3. {  
    4.     public:  
    5.     virtual int ExitInstance();  
    6. }  
    7. /* 测试1.cpp */  
    8. BOOL C测试1App::InitInstance()  
    9. {  
    10.     CoInitialize(NULL);  
    11. }  
    12. int C测试App::ExitInstance()   
    13. {  
    14.     CoUninitialize();  
    15.     return CWinApp::ExitInstance();  
    16. }  


    5.在对话框(工程基于对话框)头文件添加"ado.h",在类的声明里添加对象。并且在实现文件里面的OnInitDialog函数连接数据库。

    [cpp] view plain copy
     
    1. #include "ado.h"  
    2. class C测试1Dlg : public CDialog  
    3. {  
    4. protected:    
    5.     CAdoConnection m_adoConnection;  
    6.     CAdoRecordSet  m_adoRecordSet;  
    7. }  
    8.  /* 测试1Dlg.cpp : 实现文件 */  
    9. BOOL C测试1Dlg::OnInitDialog()  
    10. {  
    11.     if (m_adoConnection.ConnectSQLServer("127.0.0.1","vc_sqlexample","sa","wjs1314"))  
    12.     {     
    13.         m_adoRecordSet.SetAdoConnection(&m_adoConnection);  
    14.         m_adoRecordSet.SetCursorLocation();  
    15.         m_adoRecordSet.Open("student", adCmdTable);  
    16.         m_adoConnection.BeginTrans();  
    17.         UpdateRecord(TRUE);           
    18.     }  
    19.     else  
    20.     {  
    21.         MessageBox("数据库连接失败!");  
    22.     }  
    23. }  


    6.为控件添加变量(右键控件添加变量),和一个显示数据的函数,还有上一条记录、下一条记录的按钮功能

    [cpp] view plain copy
     
    1. class C测试1Dlg : public CDialog  
    2. {  
    3. public:  
    4.     COleDateTime m_strBirth;  
    5.     CString m_strBrief;  
    6.     CString m_strStuId;  
    7.     CString m_strName;  
    8.     CString m_strSex;  
    9.       
    10.     BOOL UpdateRecord(BOOL bLoad = TRUE);  
    11. }  
    12. BOOL C测试1Dlg::UpdateRecord(BOOL bLoad)  
    13. {  
    14.     if (m_adoRecordSet.GetRecordCount() < 1) return FALSE;  
    15.     if (bLoad)  
    16.     {         
    17.         if (!m_adoRecordSet.GetCollect("stuId", m_strStuId)  
    18.          || !m_adoRecordSet.GetCollect("stuName", m_strName)  
    19.          || !m_adoRecordSet.GetCollect("stuSex", m_strSex)  
    20.          || !m_adoRecordSet.GetCollect("birth", m_strBirth)  
    21.          || !m_adoRecordSet.GetCollect("brief", m_strBrief) )  
    22.         {}        
    23.         UpdateData(FALSE);  
    24.         return TRUE;  
    25.     }  
    26. }  
    27. void C测试1Dlg::OnBnClickedButton1()  
    28. {  
    29.     // TODO: 在此添加控件通知处理程序代码  
    30.     UpdateData();  
    31.     if (m_adoRecordSet.MovePrevious())  
    32.         UpdateRecord();  
    33. }  
    34. void C测试1Dlg::OnBnClickedButton2()  
    35. {  
    36.     // TODO: 在此添加控件通知处理程序代码  
    37.     UpdateData();  
    38.     if (m_adoRecordSet.MoveNext())  
    39.         UpdateRecord();  
    40. }  


    7.启动数据库,运行编译程序。

    http://blog.csdn.net/akof1314/article/details/4657780 

  • 相关阅读:
    实战:上亿数据如何秒查(转)
    jquery json 操作(转)
    企业模式之Unit Of Work模式
    判断一个网站用什么服务器
    js面向对象的封装方法,【案例】
    直线拟合算法
    互联网公司年终奖哪家强?都是土豪啊
    wifidog用php实现验证流程
    想学android进来看看吧~ ~
    Android自己定义视图(一):带下划线的TextView
  • 原文地址:https://www.cnblogs.com/findumars/p/5944099.html
Copyright © 2011-2022 走看看