Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / SqlClient / SqlVersion.cs / 1305376 / SqlVersion.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Text;
using System.Globalization;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
namespace System.Data.SqlClient
{
///
/// This enum describes the current server version
///
internal enum SqlVersion
{
///
/// Sql Server 8
///
Sql8 = 80,
///
/// Sql Server 9
///
Sql9 = 90,
///
/// Sql Server 10
///
Sql10 = 100,
// higher versions go here
}
///
/// This class is a simple utility class that determines the sql version from the
/// connection
///
internal static class SqlVersionUtils
{
///
/// Get the SqlVersion from the connection. Returns one of Sql8, Sql9, Sql10
///
/// current sql connection
/// Sql Version for the current connection
internal static SqlVersion GetSqlVersion(SqlConnection connection)
{
if (connection.IsYukonOrNewer)
{
if (connection.IsKatmaiOrNewer)
{
return SqlVersion.Sql10;
}
else
{
return SqlVersion.Sql9;
}
}
else
{
System.Diagnostics.Debug.Assert(connection.ServerVersion.StartsWith("08.", StringComparison.Ordinal),
"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(Entity.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(Entity.Strings.UnableToDetermineStoreVersion);
}
internal static bool IsPreKatmai(SqlVersion sqlVersion)
{
return sqlVersion == SqlVersion.Sql8 || sqlVersion == SqlVersion.Sql9;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ViewStateChangedEventArgs.cs
- MouseGestureConverter.cs
- ParentUndoUnit.cs
- WebScriptEndpoint.cs
- DataBindingHandlerAttribute.cs
- EventProvider.cs
- ReflectEventDescriptor.cs
- _ConnectOverlappedAsyncResult.cs
- Size.cs
- SessionStateContainer.cs
- ElementAction.cs
- Codec.cs
- ServiceInstanceProvider.cs
- DataGridSortCommandEventArgs.cs
- SByte.cs
- MappingItemCollection.cs
- CodeObject.cs
- JsonFaultDetail.cs
- TransactionManager.cs
- ApplicationServicesHostFactory.cs
- ADRole.cs
- AuthenticationService.cs
- NativeMethodsCLR.cs
- _SingleItemRequestCache.cs
- IndependentAnimationStorage.cs
- SignatureToken.cs
- HitTestWithGeometryDrawingContextWalker.cs
- SqlUdtInfo.cs
- WebAdminConfigurationHelper.cs
- FacetValueContainer.cs
- ItemContainerProviderWrapper.cs
- NavigationPropertyEmitter.cs
- SurrogateChar.cs
- SolidColorBrush.cs
- PermissionAttributes.cs
- MultiDataTrigger.cs
- DecimalFormatter.cs
- XmlLinkedNode.cs
- XsdDuration.cs
- RefreshResponseInfo.cs
- ModelFunctionTypeElement.cs
- SubstitutionList.cs
- GridViewPageEventArgs.cs
- RichTextBox.cs
- ToolBar.cs
- codemethodreferenceexpression.cs
- ClassicBorderDecorator.cs
- ConditionCollection.cs
- activationcontext.cs
- StorageModelBuildProvider.cs
- ToolStripArrowRenderEventArgs.cs
- CellTreeNodeVisitors.cs
- Compiler.cs
- FileDataSourceCache.cs
- Internal.cs
- MetabaseServerConfig.cs
- GridErrorDlg.cs
- CryptoKeySecurity.cs
- ListBoxItemWrapperAutomationPeer.cs
- XsltOutput.cs
- AsymmetricSignatureFormatter.cs
- ApplicationManager.cs
- formatstringdialog.cs
- LinkLabel.cs
- MemoryPressure.cs
- KeyConverter.cs
- MultiView.cs
- DataBindingList.cs
- StylusButton.cs
- DataGridTemplateColumn.cs
- Switch.cs
- ClassHandlersStore.cs
- Int16Animation.cs
- TypeUsage.cs
- TemplateControlParser.cs
- StructuredProperty.cs
- SQLDouble.cs
- AutomationIdentifierGuids.cs
- FormsAuthenticationTicket.cs
- NativeBuffer.cs
- WebEncodingValidatorAttribute.cs
- SqlWebEventProvider.cs
- HtmlInputButton.cs
- MsmqHostedTransportManager.cs
- GeneralTransformGroup.cs
- CustomErrorsSectionWrapper.cs
- NavigatorInput.cs
- FixedTextBuilder.cs
- PermissionToken.cs
- AddInActivator.cs
- HtmlElement.cs
- LogRecordSequence.cs
- SignatureToken.cs
- EmptyStringExpandableObjectConverter.cs
- SchemaContext.cs
- TdsValueSetter.cs
- AutomationProperties.cs
- CircleHotSpot.cs
- SingleTagSectionHandler.cs
- util.cs