vs 2008连接sql server 2008 r2连不上

xym444764243 2012-12-23 03:33:39
// 初始化COM库并连接数据库
CoInitialize(NULL);
try{
// 创建Connection对象
hr = m_pConnection.CreateInstance("ADODB.Connection");
m_pRecordset.CreateInstance("ADODB.Recordset");
if(SUCCEEDED(hr)){
// ACCESS2000,Provider=Microsoft.Jet.OLEDB.3.51;
// ACCESS97,Provider=Microsoft.Jet.OLEDB.3.51;
// SQLSERVER2005,Provider=SQLOLEDB;
// SQLSERVER2008,Provider=SQLOLEDB;
// Provider=SQLOLEDB; Server=server_name;Database=database_name; uid=user_name; pwd=password;
// Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=mydb;Data Source=.\sqlexpress如果有密码再增加一句:Password=密码
//sprintf( ConnectBuf,"Provider=%s;Server=%s;Database=%s;uid=%s;pwd=%s", g_svr.db_Provider,g_svr.db_Server,g_svr.db_Database,g_svr.db_uid,g_svr.db_pwd );
sprintf( ConnectBuf,"Provider=SQLOLEDB;Persist Security Info=False;User ID=sa;Initial Catalog=AAAA;Data Source=192.168.1.4;Password=abc@123" );
strConnect = ConnectBuf;

try{
hr = m_pConnection->Open( strConnect,"","",adModeUnknown );

m_Connected = TRUE;
return TRUE;
}catch( _com_error e ){
DWORD KKKKKK = GetLastError();
RTUSvr_LogEvent(TEXT("连接数据库失败!\r\n错误信息"));
return FALSE;
}
}
}



如上代码,open每次返回的hr值是hr|S_OK 但是直接跳进catch里去了
我需要连接192.168.1.4的数据库表,用户名sa,密码abc@123,一直不知道问题在哪,我也试过几种连接串都不成功,麻烦哪位大仙指导一下......
...全文
376 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingkingking 2014-12-11
  • 打赏
  • 举报
回复
引用 6 楼 xym444764243 的回复:
后面到处找人来问,问题解决了,好像在连接R2数据库的时候用的动态库不行 #define ADO_PATH "C:\\Program Files\\Common files\\System\\Ado\\msado15.dll" #define ADO2_PATH "C:\\Program Files\\Common files\\System\\Ado\\msado20.tlb" #if defined(ADO2_OLD) #import "C:\\Program Files\\Common files\\System\\Ado\\msado20.tlb" no_namespace rename("EOF", "adoEOF") #else #import "C:\\Program Files\\Common files\\System\\Ado\\msado15.dll" no_namespace rename("EOF", "adoEOF") #endif 前面用的是msado15.dll,后面改成了msado20.dll
大圣,能把demo发我看吗
xym444764243 2013-01-06
  • 打赏
  • 举报
回复
后面到处找人来问,问题解决了,好像在连接R2数据库的时候用的动态库不行 #define ADO_PATH "C:\\Program Files\\Common files\\System\\Ado\\msado15.dll" #define ADO2_PATH "C:\\Program Files\\Common files\\System\\Ado\\msado20.tlb" #if defined(ADO2_OLD) #import "C:\\Program Files\\Common files\\System\\Ado\\msado20.tlb" no_namespace rename("EOF", "adoEOF") #else #import "C:\\Program Files\\Common files\\System\\Ado\\msado15.dll" no_namespace rename("EOF", "adoEOF") #endif 前面用的是msado15.dll,后面改成了msado20.dll
shoppo0505 2012-12-24
  • 打赏
  • 举报
回复
写一大段东西也没用啊,你得把具体错误贴上来啊. 你截一大段代码贴上来的意义是什么? 你的ConnectBuf是啥啊?
Roni 2012-12-24
  • 打赏
  • 举报
回复
给段个程序你参考一下:
CString strConnect;
		strConnect = _T("Provider=SQLOLEDB.1;Password=") + m_strDBPassword;
		strConnect += _T(";Persist Security Info=True;User ID=") + m_strDBUser;
		strConnect += _T(";Initial Catalog = ") + m_strInitDatabase;
		strConnect += _T(";Data Source=") + m_strDBServer;
		m_pConnection->ConnectionTimeout = 30;	//30秒
		m_pConnection->CommandTimeout = 60*60;	//60分钟
		m_pConnection->Open((_bstr_t)strConnect,L"", L"",adModeUnknown);
Roni 2012-12-24
  • 打赏
  • 举报
回复
1. 192.168.1.4 这台database server上的是否有数据库名叫"AAAA"? 2. 换成“Provider=SQLOLEDB.1;Persist Security Info=True”试试。
發糞塗牆 2012-12-24
  • 打赏
  • 举报
回复
把连接报错的信息贴出来,才能发现问题
xym444764243 2012-12-23
  • 打赏
  • 举报
回复
补充: 我在自己电脑上装了sql server 2008的客户端,能够访问到192.168.1.4服务器的数据库,应该网络是好的,而且服务器上数据库的设置应该也没问题吧,是不是问题还是出在连接串上呢?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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