Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / Sql / SqlUserDefinedTypeAttribute.cs / 1305376 / 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.
//------------------------------------------------------------------------------
//
// 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
- ProcessModule.cs
- NativeMethods.cs
- AsyncStreamReader.cs
- DeviceContext2.cs
- SwitchElementsCollection.cs
- TrackingServices.cs
- RawUIStateInputReport.cs
- EntityAdapter.cs
- WrappingXamlSchemaContext.cs
- TriggerActionCollection.cs
- WebPartEditorApplyVerb.cs
- SpellerStatusTable.cs
- WindowsButton.cs
- columnmapkeybuilder.cs
- TextTreeText.cs
- ILGen.cs
- HtmlImage.cs
- TreeViewImageIndexConverter.cs
- ContextStack.cs
- DataGridCellsPresenter.cs
- DecryptRequest.cs
- DataGridViewCellParsingEventArgs.cs
- HorizontalAlignConverter.cs
- Bits.cs
- CompositionTarget.cs
- SortedDictionary.cs
- OleDbStruct.cs
- NoPersistScope.cs
- ControlFilterExpression.cs
- NameHandler.cs
- FileEnumerator.cs
- Rotation3DAnimationBase.cs
- AdapterDictionary.cs
- RectValueSerializer.cs
- PtsPage.cs
- BlockUIContainer.cs
- GeneralTransform3DTo2DTo3D.cs
- DbModificationClause.cs
- HtmlShimManager.cs
- PartialList.cs
- RawStylusInputReport.cs
- StatusStrip.cs
- CommittableTransaction.cs
- DataControlFieldHeaderCell.cs
- PageRanges.cs
- XhtmlConformanceSection.cs
- CurrentChangingEventArgs.cs
- ListViewUpdateEventArgs.cs
- ProfileService.cs
- Vector3DCollectionConverter.cs
- DotExpr.cs
- CompareInfo.cs
- input.cs
- cookieexception.cs
- StrokeNodeOperations2.cs
- WebSysDisplayNameAttribute.cs
- InputLanguageProfileNotifySink.cs
- ClientScriptManager.cs
- Operand.cs
- MonthChangedEventArgs.cs
- EntityDataSourceChangingEventArgs.cs
- QilTargetType.cs
- SchemaImporterExtensionsSection.cs
- WebPartExportVerb.cs
- XpsFixedDocumentSequenceReaderWriter.cs
- IncrementalReadDecoders.cs
- DrawListViewSubItemEventArgs.cs
- FindCriteriaApril2005.cs
- ContainerVisual.cs
- Image.cs
- Transform3DGroup.cs
- ReflectionUtil.cs
- SQLUtility.cs
- XamlInt32CollectionSerializer.cs
- MediaCommands.cs
- ThreadStateException.cs
- CryptoKeySecurity.cs
- TearOffProxy.cs
- File.cs
- AnnotationDocumentPaginator.cs
- RealizationDrawingContextWalker.cs
- C14NUtil.cs
- SID.cs
- BitmapEffectInput.cs
- DataProviderNameConverter.cs
- LayoutTable.cs
- ListBindingHelper.cs
- SwitchAttribute.cs
- httpapplicationstate.cs
- PixelFormats.cs
- StringInfo.cs
- Highlights.cs
- MemoryRecordBuffer.cs
- TextCompositionEventArgs.cs
- CompiledQuery.cs
- oledbmetadatacolumnnames.cs
- Cloud.cs
- ChildChangedEventArgs.cs
- DataPagerCommandEventArgs.cs
- CompiledRegexRunnerFactory.cs