• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

用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.

可是实际上我在备份前已经关闭所有联结了.怎么办?
...全文
96 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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的所有进程
回复
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2005-10-31 11:28
社区公告

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