- [CustomAction]
- public static ActionResult FillServerInstances(Session xiSession)
- {
- xiSession.Log("Begin CustomAction");
-
- xiSession.Log("opening view");
- View lView = xiSession.Database.OpenView("DELETE FROM ComboBox WHERE ComboBox.Property='DBSRVR'");
- lView.Execute();
-
- lView = xiSession.Database.OpenView("SELECT * FROM ComboBox");
- lView.Execute();
-
- int Index = 1;
- bool flag = false;
- try
- {
- foreach (DataRow dr in Microsoft.sqlServer.Management.Smo.SmoApplication.EnumAvailablesqlServers(false).Rows)
- {
- String InstanceName = dr["Name"].ToString();
-
- if (InstanceName.Equals(xiSession["ComputerName"] + @"\" + xiSession["sqlINSTANCENAME"],StringComparison.InvariantCultureIgnoreCase))
- { flag = true; }
-
- Record lRecord = xiSession.Database.CreateRecord(4);
- xiSession.Log("Setting record details");
- lRecord.SetString(1,"DBSRVR");
- lRecord.SetInteger(2,Index);
- lRecord.SetString(3,InstanceName);
- lRecord.SetString(4,InstanceName);
-
- xiSession.Log("Adding record");
- lView.Modify(ViewModifyMode.InsertTemporary,lRecord);
-
- ++Index;
- }
- }
- catch (Exception ex)
- {
- logException(xiSession,ex);
- }
- if (flag)
- {
- xiSession["DBSRVR"] = xiSession["ComputerName"].ToString() + @"\" + xiSession["sqlINSTANCENAME"].ToString();
- }
-
- lView.Close();
-
- xiSession.Log("Closing view");
- lView.Close();
- return ActionResult.Success;
- }