分享

VC++中数据库操作的方法

 行走在理想边缘 2014-04-26

      由于做了近两个月的毕设,感觉有些关键性的技术,需要做些笔记,方便以后随时使用。

      在VC++中操作数据库的方法主要有两种:一种是ODBC(Open Database Connectivity,开放数据库互联)技术;另一种是ADO(ActiveX Data Object,ActiveX 数据对象)技术。这里主要记录ODBC在VC++中的使用。

      ODBC提供一个单一的API,可用于处理不同数据库的客户应用程序。使用ODBC API的应用程序可以与任何具有ODBC驱动程序的关系数据库进行通信(现在,绝大多数主流关系数据库都提供了ODBC驱动程序)。ODBC体系框架如下:

接下来,通过一个简单的操作数据库的例子,来详细说明ODBC在VC++中的使用。

第一步:在数据库中创建一个表。你也是在任何数据库中创建表,如Oracle、SQL Sever、Access等,在这里我在Oracle中建了一个Student表,属性为学号(ID)、姓名(Name)、班级(Class),其中主键为学号(ID)。

第二步:建立ODBC数据源。点击“控制面板”中的“管理工具”,选择“数据源(ODBC)”,单击“添加”,如下:

选择我采用的数据库的ODBC驱动程序:

如果你采用的数据库是Access或是其他,可选择与之匹配的ODBC驱动程序。

然后接下来按照提示设置即可,比如设定数据源名称为shuhuan。

第三步:建立一个MFC的基于对话框的应用程序。为其加入一个按钮(Button)和一个报表类型的列表(List Control),如下:

第四步:设置列表的表头。选择“ClassView”,如下:

你会发现系统为我们自动生成了OnInitDialog函数。当程序开始执行时,会发出一个WM_INITDIALOG 消息,然后进入这个窗口响应函数(多态性原理)。我们在这个函数中为List Control控件进行初始化。不过在此之前必须为这个控件定义一个变量,有两种方法,可以MFC的ClassWizard的Member Variables中设置:

也可以在程序代码中手动加入:

CListCtrl& m_list_ctrl = GetListCtrl();

然后在OnInitDialog函数中的return语句前加入以下代码:

m_list_ctrl.InsertColumn( 0, _T("学号"),LVCFMT_CENTER,100,-1);
 m_list_ctrl.InsertColumn( 1, _T("姓名"), LVCFMT_CENTER,80,-1);
 m_list_ctrl.InsertColumn( 2, _T("班级"),LVCFMT_CENTER,100,-1);

编译执行

第五步:查询按钮功能的实现

双击查询按钮,系统帮我们生成一个OnQuery函数,我们接下来要做的就是在这里对数据库进行操作。首先,我们就要连接上之前建立的ODBC数据源(shuhuan),代码如下:

CDatabase m_db;
CString str;
str = _T("DSN=(ODBC数据源)shuhuan;UID=(数据库名字)shuhuan;PWD=(数据库密码)shuhuan");
if (! m_db.OpenEx(str, CDatabase::noOdbcDialog ) )
{
 AfxMessageBox("打开数据源失败");
 return;
}

好了,数据源连接成功之后,我们就可以对数据库实行增、删、改、查了。这里需要掌握一个类的使用:CRecordset。利用其对象可以实现上述操作。代码如下:

关于具体的方法调用请参见MSDN

CString x_sql = "select * from student";
 CRecordset x_recordset(&m_db);&nb

...

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多