Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Data / System / Data / Common / SQLTypes / SqlXmlStorage.cs / 1 / SqlXmlStorage.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
// [....]
// [....]
//-----------------------------------------------------------------------------
namespace System.Data.Common {
using System;
using System.Xml;
using System.IO;
using System.Xml.Serialization;
using System.Data.SqlTypes;
using System.Diagnostics;
using System.Text;
using System.Collections;
internal sealed class SqlXmlStorage : DataStorage {
private SqlXml[] values;
public SqlXmlStorage(DataColumn column)
: base(column, typeof(SqlXml), SqlXml.Null, SqlXml.Null) {
}
override public Object Aggregate(int[] records, AggregateType kind) {
try {
switch (kind) {
case AggregateType.First:
if (records.Length > 0) {
return values[records[0]];
}
return null;// no data => null
case AggregateType.Count:
int count = 0;
for (int i = 0; i < records.Length; i++) {
if (!IsNull(records[i]))
count++;
}
return count;
}
}
catch (OverflowException) {
throw ExprException.Overflow(typeof(SqlXml));
}
throw ExceptionBuilder.AggregateException(kind, DataType);
}
override public int Compare(int recordNo1, int recordNo2) {
//return values[recordNo1].CompareTo(values[recordNo2]);
return 0;
}
override public int CompareValueTo(int recordNo, Object value) {
// SqlXml valueNo2 = ((value == null)||(value == DBNull.Value))? SqlXml.Null : (SqlXml)value;
// return values[recordNo].CompareTo(valueNo2);
return 0;
}
override public void Copy(int recordNo1, int recordNo2) {
values[recordNo2] = values[recordNo1];
}
override public Object Get(int record) {
return values[record];
}
override public bool IsNull(int record) {
return (values[record].IsNull);
}
override public void Set(int record, Object value) {
if ((value == DBNull.Value) || (value == null)){
values[record] = SqlXml.Null;
}
else {
values[record] = (SqlXml)value;
}
}
override public void SetCapacity(int capacity) {
SqlXml[] newValues = new SqlXml[capacity];
if (null != values) {
Array.Copy(values, 0, newValues, 0, Math.Min(capacity, values.Length));
}
values = newValues;
}
override public object ConvertXmlToObject(string s) {
XmlTextReader reader = new XmlTextReader(s, XmlNodeType.Element, null) ;
return (new SqlXml(reader));
/* SqlXml newValue = new SqlXml();
StringReader strReader = new StringReader(s);
XmlTextReader xmlTextReader = new XmlTextReader(strReader);
((IXmlSerializable)newValue).ReadXml(xmlTextReader);
xmlTextReader.Close();
return newValue;
*/
}
override public string ConvertObjectToXml(object value) {
SqlXml reader = (SqlXml) value;
if (reader.IsNull)
return ADP.StrEmpty;
else
return reader.Value; // SqlXml.Value returns string
}
override protected object GetEmptyStorage(int recordCount) {
return new SqlXml[recordCount];
}
override protected void CopyValue(int record, object store, BitArray nullbits, int storeIndex) {
SqlXml[] typedStore = (SqlXml[]) store;
typedStore[storeIndex] = values[record];
nullbits.Set(storeIndex, IsNull(record));
}
override protected void SetStorage(object store, BitArray nullbits) {
values = (SqlXml[]) store;
//SetNullStorage(nullbits);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
// [....]
// [....]
//-----------------------------------------------------------------------------
namespace System.Data.Common {
using System;
using System.Xml;
using System.IO;
using System.Xml.Serialization;
using System.Data.SqlTypes;
using System.Diagnostics;
using System.Text;
using System.Collections;
internal sealed class SqlXmlStorage : DataStorage {
private SqlXml[] values;
public SqlXmlStorage(DataColumn column)
: base(column, typeof(SqlXml), SqlXml.Null, SqlXml.Null) {
}
override public Object Aggregate(int[] records, AggregateType kind) {
try {
switch (kind) {
case AggregateType.First:
if (records.Length > 0) {
return values[records[0]];
}
return null;// no data => null
case AggregateType.Count:
int count = 0;
for (int i = 0; i < records.Length; i++) {
if (!IsNull(records[i]))
count++;
}
return count;
}
}
catch (OverflowException) {
throw ExprException.Overflow(typeof(SqlXml));
}
throw ExceptionBuilder.AggregateException(kind, DataType);
}
override public int Compare(int recordNo1, int recordNo2) {
//return values[recordNo1].CompareTo(values[recordNo2]);
return 0;
}
override public int CompareValueTo(int recordNo, Object value) {
// SqlXml valueNo2 = ((value == null)||(value == DBNull.Value))? SqlXml.Null : (SqlXml)value;
// return values[recordNo].CompareTo(valueNo2);
return 0;
}
override public void Copy(int recordNo1, int recordNo2) {
values[recordNo2] = values[recordNo1];
}
override public Object Get(int record) {
return values[record];
}
override public bool IsNull(int record) {
return (values[record].IsNull);
}
override public void Set(int record, Object value) {
if ((value == DBNull.Value) || (value == null)){
values[record] = SqlXml.Null;
}
else {
values[record] = (SqlXml)value;
}
}
override public void SetCapacity(int capacity) {
SqlXml[] newValues = new SqlXml[capacity];
if (null != values) {
Array.Copy(values, 0, newValues, 0, Math.Min(capacity, values.Length));
}
values = newValues;
}
override public object ConvertXmlToObject(string s) {
XmlTextReader reader = new XmlTextReader(s, XmlNodeType.Element, null) ;
return (new SqlXml(reader));
/* SqlXml newValue = new SqlXml();
StringReader strReader = new StringReader(s);
XmlTextReader xmlTextReader = new XmlTextReader(strReader);
((IXmlSerializable)newValue).ReadXml(xmlTextReader);
xmlTextReader.Close();
return newValue;
*/
}
override public string ConvertObjectToXml(object value) {
SqlXml reader = (SqlXml) value;
if (reader.IsNull)
return ADP.StrEmpty;
else
return reader.Value; // SqlXml.Value returns string
}
override protected object GetEmptyStorage(int recordCount) {
return new SqlXml[recordCount];
}
override protected void CopyValue(int record, object store, BitArray nullbits, int storeIndex) {
SqlXml[] typedStore = (SqlXml[]) store;
typedStore[storeIndex] = values[record];
nullbits.Set(storeIndex, IsNull(record));
}
override protected void SetStorage(object store, BitArray nullbits) {
values = (SqlXml[]) store;
//SetNullStorage(nullbits);
}
}
}
// 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
- _ListenerRequestStream.cs
- CompositeFontParser.cs
- ServerValidateEventArgs.cs
- ColumnMapProcessor.cs
- PackWebResponse.cs
- Helper.cs
- RowToFieldTransformer.cs
- FtpWebResponse.cs
- EntityClientCacheKey.cs
- RpcAsyncResult.cs
- IncomingWebResponseContext.cs
- securitycriticaldataformultiplegetandset.cs
- ClusterSafeNativeMethods.cs
- StandardBindingElementCollection.cs
- Transform.cs
- exports.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- DataServiceRequest.cs
- SqlNotificationRequest.cs
- ResourceDictionary.cs
- StylusEventArgs.cs
- SchemaImporterExtensionElement.cs
- FlowDocumentScrollViewer.cs
- XmlSchemaSimpleContentExtension.cs
- MessageDescriptionCollection.cs
- MobileControlBuilder.cs
- TypedReference.cs
- MethodBuilder.cs
- ProjectedSlot.cs
- Compiler.cs
- SqlDependency.cs
- Region.cs
- EntityExpressionVisitor.cs
- ColorAnimationUsingKeyFrames.cs
- SourceFilter.cs
- XpsS0ValidatingLoader.cs
- ErrorFormatter.cs
- KeyInterop.cs
- NetDataContractSerializer.cs
- DecoderNLS.cs
- InfiniteIntConverter.cs
- ProtocolsConfigurationHandler.cs
- BindingMemberInfo.cs
- EntityDataSource.cs
- Module.cs
- XmlSiteMapProvider.cs
- webeventbuffer.cs
- PresentationTraceSources.cs
- HtmlTextArea.cs
- XmlWrappingReader.cs
- mediapermission.cs
- DebugView.cs
- GeometryModel3D.cs
- AutoGeneratedFieldProperties.cs
- WorkerRequest.cs
- MissingManifestResourceException.cs
- LockedAssemblyCache.cs
- ConfigXmlDocument.cs
- PassportAuthentication.cs
- XmlUrlEditor.cs
- StrongNameKeyPair.cs
- MiniMapControl.xaml.cs
- TextTrailingWordEllipsis.cs
- MiniModule.cs
- References.cs
- WindowsToolbarItemAsMenuItem.cs
- ObjectResult.cs
- TextTreeObjectNode.cs
- AllMembershipCondition.cs
- TextFindEngine.cs
- BitmapEffectGeneralTransform.cs
- WebPartAuthorizationEventArgs.cs
- Nullable.cs
- KeyValueSerializer.cs
- OletxTransactionManager.cs
- ContextTokenTypeConverter.cs
- XsdDuration.cs
- MultiBinding.cs
- BaseTemplateParser.cs
- OutputCacheSettingsSection.cs
- mediaclock.cs
- DataSourceXmlSerializer.cs
- BlurEffect.cs
- MobileControlsSection.cs
- securitymgrsite.cs
- Directory.cs
- _OverlappedAsyncResult.cs
- BuildResultCache.cs
- IIS7WorkerRequest.cs
- TerminatorSinks.cs
- BasicKeyConstraint.cs
- SubtreeProcessor.cs
- StrokeCollectionDefaultValueFactory.cs
- ProviderUtil.cs
- PropertyDescriptorGridEntry.cs
- SigningCredentials.cs
- XamlFilter.cs
- XmlDeclaration.cs
- DbConvert.cs
- ListViewHitTestInfo.cs