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 展开
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 展开
1个回答
展开全部
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地址;这个是使用指定的用户名和密码的登陆方式!
在连接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地址;这个是使用指定的用户名和密码的登陆方式!
追问
追答
使用m_pConnection->Open()肯定是需要的。
m_pConnection->ConnectionString=L"Provider= .. 这个只是赋值操作
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询