从我的好网博客转过来的,以后技术类的文章在这里安家了。
近日要做一个数据库操作的小程序,找了很多资料,终于解决了数据库连接的问题。
使用的是ADO技术:
首先要引入一个动态连接库:
#import "c:program filescommon filessystemadomsado15.dll" no_namespace rename("EOF","adoeof")
no_namespace的意思是不是用命名空间,rename("EOF","adoeof") 是将命名空间中的EOF用adoeof代替,因为现有程序中已经有了EOF。
初始化OLE:
AfxOleInit();
下来就是声明数据库连接变量了:
_ConnectionPtr conn;
创建Connection对象:
conn.CreateInstance(__uuidof( Connection));
声明数据库类型和所要用的驱动:
CString srouce;
srouce="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
CString data;
data=".databasedatabase.mdb";
调用open函数打开数据库:
conn->Open(_bstr_t(srouce+data),"","",NULL);
这样,数据库就成功的连接上了。
给个完整的代码:
#import "c:program filescommon filessystemadomsado15.dll" no_namespace rename("EOF","adoeof")
AfxOleInit();
_ConnectionPtr conn;
try{
conn.CreateInstance(__uuidof( Connection));//创建Connection对象
CString srouce;
srouce="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
CString data;
data=".databasedatabase.mdb";
conn->Open(_bstr_t(srouce+data),"","",NULL);///连接数据库
}
catch(_com_error e)///捕捉异常
{
conn=NULL;
CString errormessage("连接数据库失败! 请检查数据库路径 ");
AfxMessageBox(errormessage);///显示错误信息
exit(1);
}
随着程序的进展,我将在日志上逐步完善数据库操作的代码,希望大家批评指正