用sqldmo做sqlserver数据库恢复失败?

yangzhenhai 2005-10-31 11:28:44
程序代码如下
SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();

try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect("localhost", "sa", "");

oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
oRestore.Database = "jsy";

oRestore.Files = @"d:jsy.bak";
oRestore.FileNumber = 1;
oRestore.ReplaceDatabase = true;
oRestore.SQLRestore(oSQLServer);
}
catch
{
throw;
}
finally
{
oSQLServer.DisConnect();
}

提示错误.
[Microsoft][ODBC SQL Server Driver][SQL Server]Database in use. The system administrator must have exclusive use of the database to run the restore operation.

可是实际上我在备份前已经关闭所有联结了.怎么办?
...全文
143 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangzhenhai 2006-01-23
  • 打赏
  • 举报
回复
现在发现了,如果目录里有中文或者带空格的,恢复就会失败,是怎么回事?
pshy 2005-11-14
  • 打赏
  • 举报
回复
怎么我的VS。NET2003不能导入SQLDMO。DLL的?
提示错误:无法将文件“...\SQLDMO.DLL”添加到工具箱。它没有被识别为COM服务器。
zwfhome1 2005-10-31
  • 打赏
  • 举报
回复
svr.Connect(ls_server,ls_user,ls_des) ;
SQLDMO.QueryResults qr = svr.EnumProcesses(-1) ;
int iColPIDNum = -1 ;
int iColDbName = -1 ;
for(int i=1;i<=qr.Columns;i++)
{
string strName = qr.get_ColumnName(i) ;
if (strName.ToUpper().Trim() == "SPID")
{
iColPIDNum = i ;
}
else if (strName.ToUpper().Trim() == "DBNAME")
{
iColDbName = i ;
}
if (iColPIDNum != -1 && iColDbName != -1)
break ;
}

for(int i=1;i<=qr.Rows;i++)
{
int lPID = qr.GetColumnLong(i,iColPIDNum) ;
string strDBName = qr.GetColumnString(i,iColDbName) ;
if (strDBName.ToUpper() == strDbName.ToUpper())
svr.KillProcess(lPID) ;
}

SQLDMO.Restore res = new SQLDMO.RestoreClass() ;
res.Action = 0 ;
SQLDMO.RestoreSink_PercentCompleteEventHandler pceh = new SQLDMO.RestoreSink_PercentCompleteEventHandler(Step2);
res.PercentComplete += pceh;
res.Files = strFileName ;

res.Database = strDbName ;
res.ReplaceDatabase = true ;
res.SQLRestore(svr) ;
singlepine 2005-10-31
  • 打赏
  • 举报
回复
http://singlepine.cnblogs.com/articles/255410.html
张赐 2005-10-31
  • 打赏
  • 举报
回复
备份的时候可以不关闭
还原的时候要关闭使用sql的所有进程

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧