Sql server数据源创建好了,SQLConnect连接失败,怎么回事。

dudbcel 2011-12-07 10:26:58
怎么没有VC版,难道在3D游戏设计区,汗!到.net来发。我用ODBC 管理器创建好了Sql server数据源,测试通过,可我用SQLConnect连接不上,是怎么回事,Access都可以连接成功。。代码如下:
#include<windows.h>
#include<sqlext.h>
#include<iostream.h>
#include <odbcinst.h>
int main()
{

HENV henv;//数据据源连接需要的环境变量
HDBC hdbc;//数据源连接需要的连接变量
RETCODE rcode;
//创建环境句柄
SQLAllocEnv(&henv);

//创建连接句柄
SQLAllocConnect(henv,&hdbc);

//连接数据源
rcode=::SQLConnect(hdbc,(PUCHAR)"MySqlServer",SQL_NTS,(PUCHAR)"sa",SQL_NTS,
(PUCHAR)"123456",SQL_NTS);
if(rcode==SQL_SUCCESS)
{
cout<<"连接数据源成功!"<<endl;
}
else
{
cout<<"连接失败!"<<endl;


}
return 0;
}
...全文
405 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fvt75324xd 2012-02-10
  • 打赏
  • 举报
回复
好精彩
wyxwenyaxing 2012-01-31
  • 打赏
  • 举报
回复
你有那个连接字符串没
ziyue007 2011-12-08
  • 打赏
  • 举报
回复
我都是用的ADO方式连接的,楼主连接不对估计就是函数的参数有问题,在仔细看看吧
dudbcel 2011-12-08
  • 打赏
  • 举报
回复
问题解决了。。。if(rcode==SQL_SUCCESS)是这句,如果成功执行了,还有一种状态:SQL_SUCCESS_WITH_INFO
就是这个小细节,害得我找了一两天。别看这好似没什么,它会引出很多问题。。。。
我起先在else 语句块加上了一个return 0语句,如果没加的话,倒还可以发现问题。。。。
我也改过默认数据库,没有用。。。但最后我发现是这个原因后(SQL_SUCCESS_WITH_INFO
),改了,还是不行。。。
原来是默认数据库不对,又改回来了。。。
如果不是发现这个SQL_SUCCESS_WITH_INFO
,我再怎么更改默认数据库,也不会有结果。。。
好了,以上是一个小问题的总结。。。。
CSDN提的问题,就没有满意答案。。。。。。。大家热情度都不高,其实我也是一样。。呵呵。。。

dudbcel 2011-12-08
  • 打赏
  • 举报
回复
不清楚,自己慢慢找吧,再问一个SQLConfigDataSource函数,最后一个参数,里面有UID 和PWD,是登陆ID和密码。我看说明是Access的帐号。。。难道它们对应的不是SQL Server的登陆账号么,只限于Access。
而SQLConnect函数也有一个登陆ID和密码的参数,它们是一样的么。。。如果一样,不重复了么。。。
搞不清楚。。。

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧