Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / Common / SQLTypes / SqlXmlStorage.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FormClosedEvent.cs
- Animatable.cs
- Highlights.cs
- Positioning.cs
- SqlError.cs
- Metafile.cs
- TransformerConfigurationWizardBase.cs
- TextureBrush.cs
- WebPartTransformer.cs
- Point3DAnimation.cs
- TreeNodeSelectionProcessor.cs
- ScalarConstant.cs
- RegisteredHiddenField.cs
- SafeNativeMethodsCLR.cs
- ReadOnlyHierarchicalDataSource.cs
- ControlEvent.cs
- EntityContainerEmitter.cs
- EndpointConfigContainer.cs
- PartitionResolver.cs
- ComponentChangingEvent.cs
- DocumentPageTextView.cs
- VisualStyleElement.cs
- CqlIdentifiers.cs
- Rotation3DAnimationUsingKeyFrames.cs
- IndexedString.cs
- ToolStripPanel.cs
- EventBindingService.cs
- CodeThrowExceptionStatement.cs
- MsdtcWrapper.cs
- ConfigurationException.cs
- CustomBinding.cs
- EmissiveMaterial.cs
- AlgoModule.cs
- DispatcherHookEventArgs.cs
- ClientSettingsStore.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ToolStripDropDown.cs
- PriorityRange.cs
- ValidationErrorInfo.cs
- GeometryDrawing.cs
- BaseEntityWrapper.cs
- ConfigXmlText.cs
- Nullable.cs
- SequenceQuery.cs
- UnlockInstanceCommand.cs
- RelationshipSet.cs
- DataServiceQueryException.cs
- DirtyTextRange.cs
- SmtpCommands.cs
- EpmTargetPathSegment.cs
- ScrollChrome.cs
- ResXResourceReader.cs
- ToolTipAutomationPeer.cs
- RangeEnumerable.cs
- SimpleWorkerRequest.cs
- AudioSignalProblemOccurredEventArgs.cs
- SqlInternalConnectionSmi.cs
- WebHttpSecurity.cs
- ProxyElement.cs
- _NegoStream.cs
- BitmapEffectvisualstate.cs
- CLSCompliantAttribute.cs
- VBIdentifierNameEditor.cs
- PageCatalogPart.cs
- NonClientArea.cs
- EntityDataReader.cs
- TemplateKey.cs
- PointAnimationUsingPath.cs
- DbModificationCommandTree.cs
- TextBoxAutoCompleteSourceConverter.cs
- FontUnit.cs
- DataGridViewColumnCollectionDialog.cs
- DataContractAttribute.cs
- BitmapEffectrendercontext.cs
- TabItemAutomationPeer.cs
- SqlDataSourceDesigner.cs
- DetailsViewRowCollection.cs
- Timer.cs
- MergeExecutor.cs
- Matrix.cs
- DependencyPropertyDescriptor.cs
- ClientScriptManager.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- SiteMapHierarchicalDataSourceView.cs
- GeneralTransform3DCollection.cs
- Behavior.cs
- HttpServerProtocol.cs
- OdbcEnvironment.cs
- HandleCollector.cs
- DataReceivedEventArgs.cs
- RectangleHotSpot.cs
- Rect.cs
- LogReservationCollection.cs
- TextEditor.cs
- UserPersonalizationStateInfo.cs
- DependencyPropertyKey.cs
- Model3DGroup.cs
- SqlDependency.cs
- TableCellCollection.cs
- ThemeableAttribute.cs