MFC利用ADO连接连接SQL SERVER 2008时,出现的问题

1.在MFC应用程序中,我先用ADO连接了ACCESS数据库,可以正常连接~~ACCESS数据库名为test1,里面有一张数据表,名为user1表里有三列,分别是id、n... 1.在MFC应用程序中,我先用ADO连接了ACCESS数据库,可以正常连接~~
ACCESS数据库名为test1,里面有一张数据表,名为user1
表里有三列, 分别是 id、name、age
2.我想试一下程序与SQL SERVER 2008的连接,
于是,我在sql server里建立了一个数据库,名为test1,在库里添加了一张表user1
id和age设为int类型,name设为nchar(10)类型~~
3.在连接部分,我把原来连接ACCESS的字符串改了,变成下面的语句:
hr = m_pConnection->Open("Provider=SQLOLEDB; Server=RICHARDLEE;Database=D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\test1.mdf; uid=sa; pwd=sa;","","",adModeUnknown);
其中,RICHARDLEE是我本地服务器的名称,
D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\test1.mdf是我建立的数据库的详细文件名,
数据库没有用户名和密码(设置为windows默认的),
当我运行程序时,提示连接错误,我想知道是什么原因,(PS:我只是改了一下连接字符串而已,其他的地方都未改动)
另外,提示的错误信息是 IDispatch error #3149
展开
 我来答
ahcc08
推荐于2016-01-29 · 知道合伙人软件行家
ahcc08
知道合伙人软件行家
采纳数:11853 获赞数:51941
拥有丰富的软件开发经验。

向TA提问 私信TA
展开全部
IDispatch error #3149 是连接字符串错误

在连接SQL Server数据库的时候就需要用到 _ConnectionPtr对象了,代码为:

m_ptrConnection->ConnectionString=L"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=(数据库名字)HYL;Data Source=(这里填写数据拥有者,例如我的是)HYL-PC";

Integrated Security=SSPI指定的是Windows身份认证
Persist Security Info 属性的意思是表示是否保存安全信息,其实可以简单的理解为“ADO 在数据库连接成功后是否保存密码信息”,True表示保存,False表示不保存。

m_ptrConnection->ConnectionString=L"Provider=SQLOLEDB.1;Persist SecurityInfo=FALSE;User ID=sa;Password=8518225;Initial Catalog=HYL;Data Source=HYL-PC";
Initial Catalog=HYL要访问的数据库名字,Data Source装有数据库的机器名或是IP地址;这个是使用指定的用户名和密码的登陆方式!
追问

也就是说,只要在OnInitDlg函数中,使用

m_pConnection->ConnectionString=L"Provider=……“就行了?

不再需要使用m_pConnection->Open()函数?

我没有用Open函数,连接时没有错误,但是运行时出现错误,如图所示

追答
使用m_pConnection->Open()肯定是需要的。
m_pConnection->ConnectionString=L"Provider= .. 这个只是赋值操作
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式