数据库开发遇到ODBC的打开连接不返回?

feitianmouse 2009-05-06 03:23:16
最近在做一个数据库连接池,但是遇到问题。在调用ODBC的ConnectionPtr的Open方法打开oracle数据库的时候发现Open()方法不返回了,设置了超时put_ConnectionTimeout(35);也没有用,请问大家有遇到过这种问题么?怎么解决?现在就卡死在这儿了
...全文
115 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
feitianmouse 2009-05-06
  • 打赏
  • 举报
回复
来人帮帮忙,不要沉下去
liliangbao 2009-05-06
  • 打赏
  • 举报
回复
帮顶~~~
eyun221 2009-05-06
  • 打赏
  • 举报
回复
这个倒没用过,顶之
feitianmouse 2009-05-06
  • 打赏
  • 举报
回复
打开的这几个数据库呢,有oracle,有informix,sybase,我使用odbc做的
feitianmouse 2009-05-06
  • 打赏
  • 举报
回复
还有个细节忘记交代了,是有好几个线程同时打开几个错误的数据库连接,正常情况下,都是正确的返回打开失败的异常,但是运行到一定时间以后,就会突然出现这几个链接的open方法全部都无法返回,然后就卡住了
baiwei156 2009-05-06
  • 打赏
  • 举报
回复

//1.MFC ODBC:
CHAR *szAttributes =
"DSN=student\0DESCRIPTION=student\0"
"SERVER=server name\0"
"DATABASE=student\0";
if (FALSE == SQLConfigDataSource(NULL,ODBC_CONFIG_DSN,"Oracle ODBC Driver\0",szAttributes))
AfxMessageBox("配置系统数据源失败,请手动配置!");
//logon the server
if(dlg.DoModal()==IDOK)
{
szServer=dlg.m_strServer;
szUser=dlg.m_strUser;
szPwd=dlg.m_strPwd;

CString strConnect;
strConnect.Format("SERVER=%s;DSN=student;UID=%s;PWD=%s",szServer,szUser,szPwd);
if(!m_DB.OpenEx(strConnect,CDatabase::useCursorLib|CDatabase::noOdbcDialog))
{
AfxMessageBox("无法登录!请确认服务器、用户名和密码正确!");
return false;
}
}
else
exit(0);

// 2.ADO

_bstr_t source("Driver={Oracle Server};Data Source=student;");
_bstr_t user("username");
_bstr_t pwd("password");
try{
hr=m_connection.CreateInstance(_uuidof(Connection));
if(SUCCEEDED(hr))
hr=m_connection->Open(source,user,pwd,16);
else
MessageBox("Connection Error");
if(SUCCEEDED(hr))
hr=m_recordset.CreateInstance(_uuidof(Recordset));
else
MessageBox("Open Error");
if(SUCCEEDED(hr))
m_fConnected=TRUE;
else
m_fConnected=FALSE;
}
catch(_com_error &e)
{
MessageBox(e.ErrorMessage());
m_fConnected=FALSE;
}
if(!m_fConnected)
MessageBox("ADO数据源初始化失败");
else
{
m_strSource=(const char*)source;
AfxMessageBox(m_strSource);
}

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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