#if SQLSERVER
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sdaleo.Systems.SQLServer
{
#region SQLServer Utility Enums
///
/// Default Databases that are usually part of an SQL Server
///
internal enum SQLServerDefaultDatabase
{
master,
model,
msdb,
tempdb,
Northwind,
pubs
}
#endregion
///
/// SQLServer Helper Utilites
///
public class SQLServerUtilities
{
///
/// Splits a DataSource String to it's ServerAddress and InstanceName components
///
/// a DataSource string containing either Server or Server And Instance
/// Returns ServerAddress, if found
/// Returns Instance name, if found
/// True, if successfull, false otherwise
public static bool SplitServerOrServerNInstance(string ServerOrServerNInstance, out string Server, out string Instance)
{
Server = String.Empty;
Instance = String.Empty;
if (!string.IsNullOrEmpty(ServerOrServerNInstance) && (ServerOrServerNInstance.IndexOf('\\') >= 0))
{
string[] values = ServerOrServerNInstance.Split('\\');
if (values.Length == 2)
{
if(ValidationConsts.Generic.IsValidServerName(values[0]))
Server = values[0];
if(ValidationConsts.Generic.IsValidInstanceName(values[1]))
Instance = values[1];
return (!String.IsNullOrEmpty(Server) && !String.IsNullOrEmpty(Instance));
}
else
{
return false;
}
}
else if (!string.IsNullOrEmpty(ServerOrServerNInstance) && (ServerOrServerNInstance.IndexOf('\\') == 0))
{
if (ValidationConsts.Generic.IsValidServerName(ServerOrServerNInstance))
Server = ServerOrServerNInstance;
return (!String.IsNullOrEmpty(Server));
}
return false;
}
// Easy Access to SQL Master Database
public static string SQLServerMasterDatabaseName { get { return SQLServerDefaultDatabase.master.ToString(); } }
public static bool IsSQLServerMasterDatabaseName(string strDatabaseName) { return (SQLServerMasterDatabaseName.ToUpper() == strDatabaseName.ToUpper()); }
///
/// Easy Check for Default Database * Any SQL Server Default Database *
///
/// Name of Database to check for
/// true if this is an SQL Server Default Database, false otherwise
public static bool IsDefaultDatabaseName(string strDatabaseName)
{
foreach (string strName in Enum.GetNames(typeof(SQLServerDefaultDatabase)))
{
if (strName.ToUpper() == strDatabaseName.ToUpper())
return true;
}
return false;
}
///
/// Easy Check for System Database * Same as Default Database but does not inclue Northwind, or Pubs *
///
/// Name of Database to check for
/// true if this is an SQL Server System Database, false otherwise
public static bool IsSystemDatabaseName(string strDatabaseName)
{
foreach (string strName in Enum.GetNames(typeof(SQLServerDefaultDatabase)))
{
if (strName.ToUpper() == strDatabaseName.ToUpper() &&
(strDatabaseName.ToUpper() != "NORTHWIND") &&
(strDatabaseName.ToUpper() != "PUBS"))
return true;
}
return false;
}
}
}
#endif