要做一个图书馆管理系统,后台需要数据库,可是从来没有尝试过用VC++与数据库连接,现在唯一的顾虑就是VC++与数据库连接的难度有多大,适合用什么数据库,请各位高手给点建议。我是大三的学生,这是我们软件工程老师给的一个小作业,现在想通过这个锻炼一下。
解决方案 »
- vc6中,标签控件的 ID值,为何可以重复呢?(重名可以,并不报错)
- 基于对话框的mfc工程调用动态链接库问题
- 100分请教一个函数流程问题 问了一个周了还没人回答啊。。
- 怎样拦截消息? 急!!
- 如何实现分别控制光驱门的开关?
- 如果在对话框上写字,还有如何实现实时更新!
- sql数据库问题
- 问个问题.一个窗体能不能调用另一个窗体内的某个事件?
- 使用udl文件open方法出错
- 程序员在软件公司里属于哪一类角色,他们的地位很高吗?(非计算机专业人士的问题)
- 请教一个问题 :关于利用mfc的crecordset类实现数据库访问的问题
- 做了一个MFC单文档的程序,我想获得菜单的文本信息,比如菜单编辑里有个子菜单为"开始",我要获得它,并且把它修改为"暂停",该怎么做啊
可以使用AfxOleInit()来初始化COM库,这项工作通常在CWinApp::InitInstance()的重载函数中完成,请看如下代码:
BOOL CADOTest1App::InitInstance()
{
AfxOleInit();
......【2】用#import指令引入ADO类型库
在stdafx.h中加入如下语句
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
这一语句的作用同我们熟悉的#include类似,编译的时候系统会为我们生成msado15.tlh,ado15.tli两个C++头文件来定义ADO库。几点说明:
(1) 您的环境中msado15.dll不一定在这个目录下,请按实际情况修改
(2) 在编译的时候肯能会出现如下警告,对此微软在MSDN中作了说明,并建议我们不要理会这个警告。
msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned【3】创建Connection对象并连接数据库
首先我们需要添加一个指向Connection对象的指针:
_ConnectionPtr m_pConnection;
下面的代码演示了如何创建Connection对象实例及如何连接数据库并进行异常捕捉。
BOOL CADOTest1Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象 if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);///连接数据库
//上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51;
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
}Try it!