我的项目是c/s结构的,但服务器和数据库所在机子可能不在同。也有可能联自己的数据库。
当书库哭失去连接时该怎么判断啊?这样做怎么样?
在程序开始是启动一个定时器,每过5秒取一条数据库中肯定有的数据,当没取到时就认为断开,就重连,连5次,还没连上,就弹出对话框说数据库失去连接了。
当书库哭失去连接时该怎么判断啊?这样做怎么样?
在程序开始是启动一个定时器,每过5秒取一条数据库中肯定有的数据,当没取到时就认为断开,就重连,连5次,还没连上,就弹出对话框说数据库失去连接了。
解决方案 »
- 请教VC波形图填充颜色的问题
- 帮看一小小小段代码!!
- 如何改变CListCtrl标题栏的颜色?
- **拦截Crash并重新启动程序,参与讨论有分!!!**
- 程序中用class winzard创建了一个继承自CWinThread的类A,请问如何用class winzard再创建一个继承自
- 请问CListView和CListBox的用法一样吗?如果我要用CListView像CListBox一样插入一条信息,请问怎么做??
- 一个关于定时执行操作的简单问题,解决即给分
- 让字从上往下通过屏幕
- 如何通过自绘实现控件背景透明
- 关于CListCtrl的SortItem
- 救命!程序运行出错..............
- ActiveX控件测试方法参数调用测试问题?
void CSPCmppView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
switch(nIDEvent)
{
case PING_SMSC_TIMER: // (CAltCMPPApp*)AfxGetApp()
//等数据库启动以后再去激活测检与网关的连接程序。数据库启动失败时就没必要往下继续了。
if ( g_DataConnFlag == 1 ) //1 表示连接数据库成功,0表示失败;
gpApp->m_pSPAgent->CheckSmscLink();
break;
case PING_DB_TIMER:
//if(dblogin() == NULL) {
//if(DB_Login(g_inicfgstruct.Db_User,g_inicfgstruct.Db_Pass,g_Module))
//TraceMsg("数据库初始化成功!");
//}
if ( g_DataConnFlag == 1 ) //1 表示连接数据库成功,0表示失败;
gpApp->m_pSPAgent->CheckdbprocLink();
break;
}
CView::OnTimer(nIDEvent);
}gpApp->m_pSPAgent->CheckdbprocLink()
{
if((m_dbproc == NULL) || (DBDEAD(m_dbproc))) {
m_dbproc = DB_Getdbprocess(g_inicfgstruct.Db_Server,g_inicfgstruct.Db_Database);
return;
}PDBPROCESS DB_Getdbprocess(char *szSQLServer,char *szSQLDatabase)
{
DBPROCESS *dbp;
if(login == NULL) return FALSE;
dbp = dbopen(login, szSQLServer);
if (NULL == dbp)
{
printf("Connect to SQL Server failure.");
dbclose(dbp);
g_DataConnFlag = 0;//数据库连接失败
return (FALSE);
}
if(dbuse(dbp,szSQLDatabase) != SUCCEED)
{
dbclose(dbp);
g_DataConnFlag = 0;//数据库连接失败
return FALSE;
}
g_DataConnFlag = 1;//数据库连接成功
return (dbp);}只是片断有些内容没发过来你参考下了
你用什么方式打开数据库的,我并不知道,但是都是通用的啊,你随便打开一张表试试就可以,或者好像1楼说的,有没有类似的IsOpen的函数,使用定时器定时调用测试一下就可以了。