You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,113 @@
|
||||
//---------------------------------------------------------------------
|
||||
// <copyright file="SqlVersion.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//
|
||||
// @owner [....]
|
||||
// @backupOwner [....]
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
namespace System.Data.SqlClient
|
||||
{
|
||||
using System.Data;
|
||||
using System.Data.Entity;
|
||||
using System.Globalization;
|
||||
|
||||
/// <summary>
|
||||
/// This enum describes the current server version
|
||||
/// </summary>
|
||||
internal enum SqlVersion
|
||||
{
|
||||
/// <summary>
|
||||
/// Sql Server 8
|
||||
/// </summary>
|
||||
Sql8 = 80,
|
||||
|
||||
/// <summary>
|
||||
/// Sql Server 9
|
||||
/// </summary>
|
||||
Sql9 = 90,
|
||||
|
||||
/// <summary>
|
||||
/// Sql Server 10
|
||||
/// </summary>
|
||||
Sql10 = 100,
|
||||
|
||||
// higher versions go here
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This class is a simple utility class that determines the sql version from the
|
||||
/// connection
|
||||
/// </summary>
|
||||
internal static class SqlVersionUtils
|
||||
{
|
||||
/// <summary>
|
||||
/// Get the SqlVersion from the connection. Returns one of Sql8, Sql9, Sql10
|
||||
/// The passed connection must be open
|
||||
/// </summary>
|
||||
/// <param name="connection">current sql connection</param>
|
||||
/// <returns>Sql Version for the current connection</returns>
|
||||
internal static SqlVersion GetSqlVersion(SqlConnection connection)
|
||||
{
|
||||
System.Diagnostics.Debug.Assert(connection.State == ConnectionState.Open, "Expected an open connection");
|
||||
int majorVersion = Int32.Parse(connection.ServerVersion.Substring(0, 2), CultureInfo.InvariantCulture);
|
||||
if (majorVersion >= 10)
|
||||
{
|
||||
return SqlVersion.Sql10;
|
||||
}
|
||||
else if (majorVersion == 9)
|
||||
{
|
||||
return SqlVersion.Sql9;
|
||||
}
|
||||
else
|
||||
{
|
||||
System.Diagnostics.Debug.Assert(majorVersion == 8, "not version 8");
|
||||
return SqlVersion.Sql8;
|
||||
}
|
||||
}
|
||||
|
||||
internal static string GetVersionHint(SqlVersion version)
|
||||
{
|
||||
switch(version)
|
||||
{
|
||||
case SqlVersion.Sql8:
|
||||
return SqlProviderManifest.TokenSql8;
|
||||
|
||||
case SqlVersion.Sql9:
|
||||
return SqlProviderManifest.TokenSql9;
|
||||
|
||||
case SqlVersion.Sql10:
|
||||
return SqlProviderManifest.TokenSql10;
|
||||
|
||||
default:
|
||||
throw EntityUtil.Argument(Strings.UnableToDetermineStoreVersion);
|
||||
}
|
||||
}
|
||||
|
||||
internal static SqlVersion GetSqlVersion(string versionHint)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(versionHint))
|
||||
{
|
||||
switch (versionHint)
|
||||
{
|
||||
case SqlProviderManifest.TokenSql8:
|
||||
return SqlVersion.Sql8;
|
||||
|
||||
case SqlProviderManifest.TokenSql9:
|
||||
return SqlVersion.Sql9;
|
||||
|
||||
case SqlProviderManifest.TokenSql10:
|
||||
return SqlVersion.Sql10;
|
||||
}
|
||||
}
|
||||
|
||||
throw EntityUtil.Argument(Strings.UnableToDetermineStoreVersion);
|
||||
}
|
||||
|
||||
internal static bool IsPreKatmai(SqlVersion sqlVersion)
|
||||
{
|
||||
return sqlVersion == SqlVersion.Sql8 || sqlVersion == SqlVersion.Sql9;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user