(纯技术贴)请问一下sqldmo里备份和还原的问题
在还原的时候为了杀死该数据库正在运行的所有进程,所以有下面一段
SQLDMO.QueryResults qr = srv.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() == this.cboDatabase.Text.ToUpper())
{
srv.KillProcess(lPID);
}
}
其中EnumProcesses(-1)这句到底是什么意思啊?谁能给我解释一下这个方法,和参数为什么是 -1吗?
[解决办法]
The EnumProcesses method returns a QueryResults object that enumerates the Microsoft SQL Server processes running on a referenced instance of Microsoft SQL Server.
Syntax
object
.EnumProcesses( [ WhoByNameOrID ] )as QueryResults
Parts
object
Expression that evaluates to an object in the Applies To list.
WhoByNameOrID
String or small integer that identifies a login name or process ID.
//-1表示列举所有的SQL Server的进程实列