程序编译的Release版本在本机上运行正常,放置其它主机上就直接崩溃,已经查到是ConnectionTimeout语句出的问题,然后删除该语句也应该有一个默认的Timeout值 但是删除以后在其他主机上不管是什么Connect直接显示连接失败没有一点超时。 有木有大神来解决下啊~ HRESULT hr = m_ptrConnection.CreateInstance("ADODB.Connection");
if (FAILED(hr))
{
if (!FAILED(::CoInitialize(NULL)))
{
m_ptrConnection.CreateInstance("ADODB.Connection");
}
} CString strConnect;
strConnect.Format(_T(" Provider=SQLOLEDB.1; \
Persist Security Info=True; \
Data Source=%s; \
Initial Catalog=%s; \
User Id=%s; \
Password=%s; "),
strServerName,
strDatabaseName,
strLoginName,
strPassword);
ADODB::_CommandPtr a;// 一下三句均崩溃
// m_ptrConnection->ConnectionTimeout = (long)5;
// m_ptrConnection->ConnectionTimeout = 5;
// m_ptrConnection->put_CommandTimeout(1L);
try
{
hr = m_ptrConnection->Open(_bstr_t(strConnect), "", "", 0);
}
catch (_com_error e)
{
return -1;
} if (FAILED(hr))
{
return -1;
}
if (FAILED(hr))
{
if (!FAILED(::CoInitialize(NULL)))
{
m_ptrConnection.CreateInstance("ADODB.Connection");
}
} CString strConnect;
strConnect.Format(_T(" Provider=SQLOLEDB.1; \
Persist Security Info=True; \
Data Source=%s; \
Initial Catalog=%s; \
User Id=%s; \
Password=%s; "),
strServerName,
strDatabaseName,
strLoginName,
strPassword);
ADODB::_CommandPtr a;// 一下三句均崩溃
// m_ptrConnection->ConnectionTimeout = (long)5;
// m_ptrConnection->ConnectionTimeout = 5;
// m_ptrConnection->put_CommandTimeout(1L);
try
{
hr = m_ptrConnection->Open(_bstr_t(strConnect), "", "", 0);
}
catch (_com_error e)
{
return -1;
} if (FAILED(hr))
{
return -1;
}
解决方案 »
- 有从VS2008升级到VS2010的朋友吗
- 虔诚求助:CComboBox类的光标设置问题
- 派生出来的 类怎么没有反应?
- 一个关于模版和友元的问题???
- 【挺晕的】如何实现图形剪影?
- 有没有人会用微盘的api编android程序啊?
- MFC有关 --AfxGetThreadState()到底实际的意义是什么 MSDN中未列出该函数
- AtlAdvise事件中如何获得IHTMLElement2的默认的事件DispID
- ActiveX控件里用ADO访问数据库的问题
- 怎样创建窗口
- ring3 hook ntdll!NtCreateSection,为什么获取的ObjectAttributes经常无效
- 串口通信的接收数据显示
2. 检查你的数据库是否可以让其他机器访问。sqlserver2000是需要装补丁才能访问的
HRESULT hr = m_ptrConnection.CreateInstance("ADODB.Connection");
if (FAILED(hr))
{
if (!FAILED(::CoInitialize(NULL)))
{
dwLastError = m_ptrConnection.CreateInstance("ADODB.Connection");
CString a;
a.Format(_T("%x"),dwLastError);
MessageBox(a);
}
}
看看是多少google去~
需要安装补丁KB983246,在csdn资源里找找,xp vista win7的都有