昨天写个小程序;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