VC++用ADO连接SQL Server出错,异常:“Unknown error 0x800A0E7D".提示:“数据库连接失败”.

求大虾指点迷津~~~~~~~~~~我用ADO连接SQLServer数据库,老是报错。错误提示:“数据库连接失败”,“数据库记录读取失败”。捕捉异常:“Unknownerr... 求大虾指点迷津~~~~~~~~~~
我用ADO连接SQL Server数据库,老是报错。
错误提示:“数据库连接失败”,“数据库记录读取失败”。
捕捉异常:“Unknown error 0x800A0E7D".

代码如下:
1、在stdafx.h中导入一个ADO动态链接库msado15.dll,添加代码:
#import "msado15.dll" rename_namespace("ADODB") rename("EOF","adoEOF") using namespace ADODB;

2、在ADOConn.h中定义
public:
RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);
_ConnectionPtr m_pCon;
_RecordsetPtr m_pRs;
_CommandPtr m_pCommand;
static CString m_ConStr;

主要代码:
// AdoConn.cpp: implementation of the AdoConn class.
//
//////////////////////////////////////////////////////////////////
///
#include "stdafx.h"
#include "SQLLibraryManagementSystem.h"
#include "ADOConn.h"
#include <iostream>

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CString ADOConn::m_ConStr= " Provider=SQLOLEDB; Data Source=(local); Initial Catalog = SQLLibraryManagementSystem; Integrated Security=SSPI; Persist Security Info = False;";

ADOConn::ADOConn()
{

}

ADOConn::~ADOConn()
{

}

void ADOConn::OnInitADOConn()
{
try
{
m_pCon.CreateInstance("ADODB.Connection");
m_pCommand.CreateInstance("ADODB.Command");
m_pRs.CreateInstance("ADODB.Recordset");
m_pCon->ConnectionString = m_ConStr.AllocSysString();
m_pCon->Open("","","",-1);
}
catch(_com_error)
{
AfxMessageBox("数据库连接失败,确认数据库是否在当前路径下!");
}
}

_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
// 连接数据库,如果Connection对象为空,则重新连接数据库
if(m_pCon==NULL)
OnInitADOConn();
// 创建记录集对象
m_pRs.CreateInstance("ADODB.Recordset");
m_pRs-> CursorLocation=adUseClient;
// 取得表中的记录
m_pRs->Open(bstrSQL,m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
AfxMessageBox("数据库记录读取失败");
AfxMessageBox(e.ErrorMessage());
}
return m_pRs;
}

数据库为什么会连接失败呢?我用的办公电脑,不知道是不是电脑被设置了权限,故无法连接。

我用ADO Data 控件连接数据库,在“服务器上选择数据库”时候提示:
“[DBNETLIB][ConnectionOpen(Connect()).]SQL Server不存在或拒绝访问”。

我用了管理员权限也是这么提示,数据库SQLLibraryManagementSystem我也已经创建好了,同“msado15.dll”放在与代码同一个文件夹中。

求大侠指点~~~~另再送分
展开
 我来答
zjacai
2011-11-24 · TA获得超过253个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:123万
展开全部
如果你的sql server不在本地,需设置成允许远程链接

还有,你的登录用户需被设置成允许连接,在用户属性里面有
永远支持BD
2011-11-25 · TA获得超过1537个赞
知道小有建树答主
回答量:538
采纳率:0%
帮助的人:250万
展开全部
因为你服务没开......
追问
开了呀,我用SQL查询分析器可以操作数据库的呀~~~~~~
额~貌似SQL Server服务管理器最底下有行小字提示:未连接...
这就是传说中的服务器未开???
跪求解...
追答
- - 那不就是服务没开么老大。。。。。 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海边狐狸
2011-11-23 · TA获得超过1425个赞
知道大有可为答主
回答量:2718
采纳率:0%
帮助的人:1831万
展开全部
有没有安装过VC++数据库!!先下载试下
追问
VC++数据库??你的意思是有没有安装SQL Server数据库??安装了呀。Access数据库能用的。但是这个SQL Server数据库就一直连接不上,不知道哪错了。。。
追答
VBVC 201108增强版.exe  你去找下这个文件 安装下看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式