昨天写个小程序,C++ ADO 备份SQLServer数据库,数据库有点大,代码如下:
try
{
CString strSqlback = "backup database SHA_PiecePart to disk = '" + strFilePath + strFileName + ".bak'";
db.Execute(strSqlback);
}
catch(_com_error e)
{
AfxMessageBox("备份数据库异常!");
return;
}
结果总是报错:“查询超时已过期”
后来查找资料,是因为命令等待时间太短导致,在前面加上一句:
db.m_pConnection->put_CommandTimeout(1800);//设置查询超时为30分钟,因为备份要很长时间,不设置的话,会报:“查询超时已过期”
就搞定了。
注意:这里是 设置的是 ADOconnection 的commandtimeout,
不是连接时间 SqlConnection.ConnectionTimeout
记录如上,2022/10/13