ConnectDB()是 OnInitDialog()程序中最后调用的一个函数void CIndustryDlg::ConnectDB()
{ if(m_pConnection)
m_pConnection->Close();
//初始化Connection 指针
m_pConnection.CreateInstance (_uuidof(Connection));
m_pRecordset.CreateInstance (_uuidof(Recordset)); try
{
CString strConnect;
strConnect.Format ("Provider=SQLOLEDB.1;Password=%s;User ID=%s;Data Source=%s;Persist Security Info=True",m_strDBPwd,m_strDBUser,m_strDBSource);

//连接数据库
m_pConnection->Open ((_bstr_t)strConnect,"","",-1);   //********************** }
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage ());
}
调试发现运行到***********的那一行后就不动了,最后的窗体也出不来,在任务管理器中可以看到进程,请问这是为什么啊?

解决方案 »

  1.   

    知道原因了,是Date Source写错了,连接不上可是当出现连接不上的情况时候,我怎么判断,并在一个合适的时间内终止连接,并且弹出提示呢?像我开始这样,连不上,对话框就出不来,和死了一样
      

  2.   

    要确实超时后才知道连不上,而且这个Open并不是异步操作,所以如果因为无法连接服务器等原因导致连接失败的,这段连接时间必须等待。除非你把连接过程放到线程中,自己计时超时后将该线程强制中止掉。
      

  3.   

    在m_pConnection.CreateInstance (_uuidof(Connection));后加
    m_pTreeConn->ConnectionTimeout = 8;(8为超时时间,毫秒还是秒偶不知道.)
    在这个时间内不成功的话,就会到弹出对话框的
      

  4.   

    m_pTreeConn->ConnectionTimeout = 8;当我这样设置后,探出的是"未指定的错误",这是为什么? 没法控制探出的对话框的格式阿
      

  5.   

    我现在这个connectingstring的问题是,如果里面格式错误了,那么程序就死掉了,窗体弹不出来
      

  6.   

    如果我关掉SQL Server,那一段时间后,大概10s,就会出现"未指定的错误".....到底咋整阿?