mfc 应用ado 连接 sql 数据库

本人初学ado连接,下面是一个最简单的程序(书中的例子),奈何总是失败,请各位指教本人是菜鸟,请大家莫怪首先我建立了一个mfc对话框然后头文件加入了ado#import"... 本人初学ado连接,下面是一个最简单的程序(书中的例子),奈何总是失败,请各位指教
本人是菜鸟,请大家莫怪

首先我建立了一个mfc 对话框
然后头文件加入了ado #import "c:\................."
再然后定义了一个Connection 对象 _ConnecectionPtr m_pConnection
再之后就是在生成对话框的程序中加入下列代码
::CoInitialize(NULL);
try
{
m_pConnection.CreateInstance("ADODB.Connection");
_bstr_t strConnect = "Provider = SQLOLEDB.1;Password=111;Persist Security Info=True ;User Id=root; Initial Catalog=test; Data Source=localhost;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
if( m_pConnection->State==adStateOpen) MessageBox("连接数据库");
m_pConnection->Close();
if( m_pConnection->State==adStateClosed) MessageBox("断开连接");
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}

可以运行,但是在判断是否连接的时候,判断语句明显占用了很多资源而且直接跳过
同时捕捉到了未知异常

这是我的全部步骤,有人说需要设置odbc的数据源,可是我查阅了一下似乎不用?
请各位大大指点!
展开
 我来答
lixin_shirt
2009-03-06 · TA获得超过285个赞
知道小有建树答主
回答量:444
采纳率:0%
帮助的人:387万
展开全部
教你个连接数据库的方法。首先新建一个txt文件,把他命名为aaa.udl然后双击它配置数据库的连接。配置好连接成功后,将该文件放置程序文件夹内。连接数据库时将你的_bstr_t strConnect = "Provider = SQLOLEDB.1;Password=111;Persist Security Info=True ;User Id=root; Initial Catalog=test; Data Source=localhost;"; 这一句改为:
_bstr_t strConnect ="File Name=EPXLDT.udl";然后再连接试试。
如果还不行,把你的邮箱发给我,我给你发个连接数据库的类。挺好用的
十幻柳
2009-03-06 · 超过10用户采纳过TA的回答
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
m_pConnection->Close(); //光关闭数据库连接不行的,还要释放com环境
//下面添加代码:
::CoUninitialize();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式