C# e Sql Server: sp_help_job, monitorare i job.
In questo link mamma microsoft ci parla della store procedure sp_hel_job, utile per monitorare i job di sql server:
http://technet.microsoft.com/it-it/library/ms186722(SQL.90).aspx
Il metodo di esempio DammiElencoJob riportato sotto non fa altro che eseguire la query:
"exec [msdb].dbo.sp_help_job @enabled = 1"
per avere l’elenco di tutti i job attivi.
private String DammiElencoJob()
{
StringBuilder _sb = new StringBuilder();
DataTable _ds;
_ds = QueryDB.getRecordSQL(, ,, , "exec [msdb].dbo.sp_help_job @enabled = 1");
if (_ds.Rows.Count == 0)
{
_sb.Append("Errore: nessun job trovato.").Append(Environment.NewLine);
}
else
{
_sb.Append("NOME + "
" |ULTIMA |ESITO").Append(Environment.NewLine);
foreach (DataRow r in _ds.Rows)
{
string _name = ((string)r["name"]).PadRight(90);
_sb.Append(_name).Append("|");
DateTime dt = new DateTime((int)r["last_run_date"]);
string _last_run_date = ("" + dt.ToString("dd/MM/yyyy")).PadRight(10);
_sb.Append(_last_run_date).Append("|");
int _last_run_outcome = (int)r["last_run_outcome"];
switch (_last_run_outcome)
{
case 0:
_sb.Append("Non completato");
break;
case 1:
_sb.Append("Completato");
break;
case 3:
_sb.Append("Annullato");
break;
case 5:
_sb.Append("Stato sconosciuto");
break;
default:
_sb.Append("Stato sconosciuto");
break;
}
_sb.Append(Environment.NewLine);
}
}
_sb.Append(Environment.NewLine);
return _sb.ToString();
}
public static DataTable getRecordSQL(String datasource,String user, String password, String database, String sql)
{
String connStr;
OleDbConnection conn;
OleDbDataAdapter adattatore;
DataTable ds = new DataTable();
connStr = @"Provider = SQLOLEDB.1;Password=" + password + ";User ID=" + user + ";Initial Catalog=" + database + ";Data Source=" + datasource;
conn = new OleDbConnection(connStr);
adattatore = new OleDbDataAdapter();
adattatore.SelectCommand = new OleDbCommand(sql, conn);
try
{
adattatore.Fill(ds);
adattatore.Dispose();
conn.Dispose();
return ds;
}
catch (SqlException se)
{
return null;
}
catch (Exception ex)
{
return null;
}
}
Leave a Reply