问题描述:使用ADO操作mysql数据库,程序当天运行没有任何问题,能正常操作数据库。可是,隔一天后关于数据库的操作就会都失败!重启后还是可以正常运行,后来经过试验更改系统的日期后,数据库操作就失败了。出错日志: ODBC 驱动程序不支持所需的属性。数据库连接用:strConnectSql.Format(_T("DRIVER={MySQL ODBC 5.1 Driver}; SERVER=%s; PORT=%s; DATABASE=%s; UID=%s; PASSWORD=%s;OPTION=3;"),strDBIP,strPort,strDBName, strUser, strPwd);解决问题的尝试:1.在每次操作数据库前都用重新连接数据库,开始时还行,更改日期都没问题。后来因为要大量操作数据库,就要会出问题,日志如下:“连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。”
2.准备尝试用定时器,每隔一段时间连接一次数据库,还没有尝试,不知行不行。就算行,但是也是治标不治本的,所以请求各位试验验证一下并指教啊,拜求各位了。说明:由于项目过大,无法贴出代码。程序在一天内没任何问题,日期变后会有问题,重启后一切正常。
2.准备尝试用定时器,每隔一段时间连接一次数据库,还没有尝试,不知行不行。就算行,但是也是治标不治本的,所以请求各位试验验证一下并指教啊,拜求各位了。说明:由于项目过大,无法贴出代码。程序在一天内没任何问题,日期变后会有问题,重启后一切正常。
try
{
//一系列操作
}
catch(CADOException* e)
{
pRs.Close();
CString str = e->GetErrorMessage();
OutputDebugString(str); //打印异常信息
return -1;
}
catch(...)
{
pRs.Close(); OutputDebugString(_T("未知错误!\r\n"));
return -1;
}
130813 8:47:53 InnoDB: Started; log sequence number 0 1078191
130813 8:47:53 [Note] C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: ready for connections.
Version: '5.0.51b-community-nt' socket: '' port: 3306 MySQL Community Edition (GPL)
130813 18:10:42 [Note] C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: Normal shutdown130813 18:10:42 InnoDB: Starting shutdown...
130813 18:10:44 InnoDB: Shutdown completed; log sequence number 0 1397375
130813 18:10:44 [Note] C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: Shutdown complete130814 8:46:38 InnoDB: Started; log sequence number 0 1397375
130814 8:46:38 [Note] C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: ready for connections.
Version: '5.0.51b-community-nt' socket: '' port: 3306 MySQL Community Edition (GPL)
130814 17:52:24 [Note] C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: Normal shutdown130814 17:52:25 InnoDB: Starting shutdown...
130814 17:52:43 InnoDB: Shutdown completed; log sequence number 0 2248385
130814 17:52:43 [Note] C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: Shutdown complete130815 8:48:36 InnoDB: Started; log sequence number 0 2248385
130815 8:48:36 [Note] C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: ready for connections.
Version: '5.0.51b-community-nt' socket: '' port: 3306 MySQL Community Edition (GPL)
当服务器重新开起时了, 你的客户端也要重新连接啊。
使用的本地MySQL,不存在这个问题。