Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Data / System / Data / Sql / SqlUserDefinedTypeAttribute.cs / 1 / SqlUserDefinedTypeAttribute.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All Rights Reserved.
// Information Contained Herein is Proprietary and Confidential.
//
// [....]
// [....]
// daltudov
// [....]
// beysims
// [....]
// vadimt
// venkar
// [....]
//-----------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
using System;
using System.Data.Common;
public enum Format { //: byte
Unknown = 0,
Native = 1,
UserDefined = 2,
#if WINFSFunctionality
// Only applies to WinFS
Structured = 4
#endif
}
// This custom attribute indicates that the given type is
// a SqlServer udt. The properties on the attribute reflect the
// physical attributes that will be used when the type is registered
// with SqlServer.
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple=false, Inherited=true)]
public sealed class SqlUserDefinedTypeAttribute: Attribute {
private int m_MaxByteSize;
private bool m_IsFixedLength;
private bool m_IsByteOrdered;
private Format m_format;
private string m_fName;
// The maximum value for the maxbytesize field, in bytes.
internal const int YukonMaxByteSizeValue = 8000;
private String m_ValidationMethodName = null;
// A required attribute on all udts, used to indicate that the
// given type is a udt, and its storage format.
public SqlUserDefinedTypeAttribute(Format format) {
switch(format) {
case Format.Unknown:
throw ADP.NotSupportedUserDefinedTypeSerializationFormat((Microsoft.SqlServer.Server.Format)format, "format");
case Format.Native:
case Format.UserDefined:
#if WINFSFunctionality
case Format.Structured:
#endif
this.m_format = format;
break;
default:
throw ADP.InvalidUserDefinedTypeSerializationFormat((Microsoft.SqlServer.Server.Format)format);
}
}
// The maximum size of this instance, in bytes. Does not have to be
// specified for Native serialization. The maximum value
// for this property is specified by MaxByteSizeValue.
public int MaxByteSize {
get {
return this.m_MaxByteSize;
}
set {
if (value < -1) {
throw ADP.ArgumentOutOfRange("MaxByteSize");
}
this.m_MaxByteSize = value;
}
}
// Are all instances of this udt the same size on disk?
public bool IsFixedLength {
get {
return this.m_IsFixedLength;
}
set {
this.m_IsFixedLength = value;
}
}
// Is this type byte ordered, i.e. is the on disk representation
// consistent with the ordering semantics for this type?
// If true, the binary representation of the type will be used
// in comparison by SqlServer. This property enables indexing on the
// udt and faster comparisons.
public bool IsByteOrdered {
get {
return this.m_IsByteOrdered;
}
set {
this.m_IsByteOrdered = value;
}
}
// The on-disk format for this type.
public Format Format {
get {
return this.m_format;
}
}
// An Optional method used to validate this UDT
// Signature: bool <ValidationMethodName>();
public String ValidationMethodName {
get
{
return this.m_ValidationMethodName;
}
set
{
this.m_ValidationMethodName = value;
}
}
public string Name {
get {
return m_fName;
}
set {
m_fName = value;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SQLDecimal.cs
- ColorTransform.cs
- UnsafeNetInfoNativeMethods.cs
- TargetParameterCountException.cs
- MenuEventArgs.cs
- TextEffect.cs
- CommandBindingCollection.cs
- SqlConnectionFactory.cs
- Parallel.cs
- ISessionStateStore.cs
- DescendantOverDescendantQuery.cs
- Clock.cs
- ProjectionPlan.cs
- PlainXmlSerializer.cs
- DBSqlParserTable.cs
- Storyboard.cs
- XslCompiledTransform.cs
- ValidationSummaryDesigner.cs
- TableLayoutStyleCollection.cs
- XmlName.cs
- GenericWebPart.cs
- TableLayoutSettings.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- MSHTMLHostUtil.cs
- ByteStorage.cs
- DataServiceRequest.cs
- NumericUpDown.cs
- ViewUtilities.cs
- DesignerGenericWebPart.cs
- ChildrenQuery.cs
- PackageStore.cs
- ControlLocalizer.cs
- Annotation.cs
- ResXResourceReader.cs
- DataAdapter.cs
- ToolbarAUtomationPeer.cs
- COSERVERINFO.cs
- IntPtr.cs
- ToolStripItemDataObject.cs
- UriSection.cs
- CreateUserWizard.cs
- BinaryWriter.cs
- BezierSegment.cs
- TabletDevice.cs
- COSERVERINFO.cs
- MDIClient.cs
- FramingDecoders.cs
- BidOverLoads.cs
- GeneralTransform.cs
- StyleCollectionEditor.cs
- RadioButtonFlatAdapter.cs
- XmlSchemaCompilationSettings.cs
- CorrelationManager.cs
- AssemblyCache.cs
- EdmItemError.cs
- ControlIdConverter.cs
- CodeAttachEventStatement.cs
- GridViewAutomationPeer.cs
- CommonDialog.cs
- Int32AnimationUsingKeyFrames.cs
- TreeBuilder.cs
- XmlDomTextWriter.cs
- InternalControlCollection.cs
- SelectionItemPattern.cs
- PanelDesigner.cs
- Effect.cs
- SafeNativeMethodsOther.cs
- FlowDocumentReader.cs
- SiteMapNodeItem.cs
- BaseValidator.cs
- InkCanvasSelectionAdorner.cs
- RSACryptoServiceProvider.cs
- DetailsViewRow.cs
- Accessible.cs
- FacetChecker.cs
- MeshGeometry3D.cs
- EndPoint.cs
- NavigationExpr.cs
- WebRequestModuleElement.cs
- UnknownBitmapDecoder.cs
- SqlParameterCollection.cs
- CharEntityEncoderFallback.cs
- wgx_sdk_version.cs
- AVElementHelper.cs
- AttachedAnnotation.cs
- DialogResultConverter.cs
- LockingPersistenceProvider.cs
- InputReportEventArgs.cs
- tooltip.cs
- _FtpDataStream.cs
- TrackBarRenderer.cs
- SqlLiftWhereClauses.cs
- ValidationErrorCollection.cs
- EncoderParameter.cs
- FigureParagraph.cs
- AuthorizationBehavior.cs
- ThreadPool.cs
- EncryptedPackageFilter.cs
- Line.cs
- TextElementAutomationPeer.cs