@@ -21,12 +21,15 @@ public class SqlDataRecord : IDataRecord
21
21
private FieldNameLookup _fieldNameLookup ;
22
22
private bool _usesStringStorageForXml ;
23
23
24
- private static readonly SmiMetaData s_maxNVarCharForXml = new SmiMetaData ( SqlDbType . NVarChar , SmiMetaData . UnlimitedMaxLengthIndicator ,
25
- SmiMetaData . DefaultNVarChar_NoCollation . Precision ,
26
- SmiMetaData . DefaultNVarChar_NoCollation . Scale ,
27
- SmiMetaData . DefaultNVarChar . LocaleId ,
28
- SmiMetaData . DefaultNVarChar . CompareOptions ,
29
- null ) ;
24
+ private static readonly SmiMetaData s_maxNVarCharForXml = new SmiMetaData (
25
+ SqlDbType . NVarChar ,
26
+ SmiMetaData . UnlimitedMaxLengthIndicator ,
27
+ SmiMetaData . DefaultNVarChar_NoCollation . Precision ,
28
+ SmiMetaData . DefaultNVarChar_NoCollation . Scale ,
29
+ SmiMetaData . DefaultNVarChar . LocaleId ,
30
+ SmiMetaData . DefaultNVarChar . CompareOptions ,
31
+ userDefinedType : null
32
+ ) ;
30
33
31
34
/// <include file='../../../../../../../../doc/snippets/Microsoft.Data.SqlClient.Server/SqlDataRecord.xml' path='docs/members[@name="SqlDataRecord"]/FieldCount/*' />
32
35
public virtual int FieldCount
@@ -50,7 +53,7 @@ public virtual string GetDataTypeName(int ordinal)
50
53
{
51
54
EnsureSubclassOverride ( ) ;
52
55
SqlMetaData metaData = GetSqlMetaData ( ordinal ) ;
53
- if ( SqlDbType . Udt == metaData . SqlDbType )
56
+ if ( metaData . SqlDbType == SqlDbType . Udt )
54
57
{
55
58
return metaData . UdtTypeName ;
56
59
}
@@ -64,31 +67,23 @@ public virtual string GetDataTypeName(int ordinal)
64
67
public virtual Type GetFieldType ( int ordinal )
65
68
{
66
69
EnsureSubclassOverride ( ) ;
67
- {
68
- SqlMetaData md = GetSqlMetaData ( ordinal ) ;
69
- return MetaType . GetMetaTypeFromSqlDbType ( md . SqlDbType , false ) . ClassType ;
70
- }
70
+ SqlMetaData md = GetSqlMetaData ( ordinal ) ;
71
+ return MetaType . GetMetaTypeFromSqlDbType ( md . SqlDbType , false ) . ClassType ;
71
72
}
72
73
73
74
/// <include file='../../../../../../../../doc/snippets/Microsoft.Data.SqlClient.Server/SqlDataRecord.xml' path='docs/members[@name="SqlDataRecord"]/GetValue/*' />
74
75
public virtual object GetValue ( int ordinal )
75
76
{
76
77
EnsureSubclassOverride ( ) ;
77
78
SmiMetaData metaData = GetSmiMetaData ( ordinal ) ;
78
-
79
- return ValueUtilsSmi . GetValue200 (
80
- _eventSink ,
81
- _recordBuffer ,
82
- ordinal ,
83
- metaData
84
- ) ;
79
+ return ValueUtilsSmi . GetValue200 ( _eventSink , _recordBuffer , ordinal , metaData ) ;
85
80
}
86
81
87
82
/// <include file='../../../../../../../../doc/snippets/Microsoft.Data.SqlClient.Server/SqlDataRecord.xml' path='docs/members[@name="SqlDataRecord"]/GetValues/*' />
88
83
public virtual int GetValues ( object [ ] values )
89
84
{
90
85
EnsureSubclassOverride ( ) ;
91
- if ( null == values )
86
+ if ( values == null )
92
87
{
93
88
throw ADP . ArgumentNull ( nameof ( values ) ) ;
94
89
}
@@ -158,7 +153,7 @@ public virtual byte GetByte(int ordinal)
158
153
public virtual long GetBytes ( int ordinal , long fieldOffset , byte [ ] buffer , int bufferOffset , int length )
159
154
{
160
155
EnsureSubclassOverride ( ) ;
161
- return ValueUtilsSmi . GetBytes ( _eventSink , _recordBuffer , ordinal , GetSmiMetaData ( ordinal ) , fieldOffset , buffer , bufferOffset , length , true ) ;
156
+ return ValueUtilsSmi . GetBytes ( _eventSink , _recordBuffer , ordinal , GetSmiMetaData ( ordinal ) , fieldOffset , buffer , bufferOffset , length , throwOnNull : true ) ;
162
157
}
163
158
164
159
/// <include file='../../../../../../../../doc/snippets/Microsoft.Data.SqlClient.Server/SqlDataRecord.xml' path='docs/members[@name="SqlDataRecord"]/GetChar/*' />
@@ -222,7 +217,7 @@ public virtual string GetString(int ordinal)
222
217
{
223
218
EnsureSubclassOverride ( ) ;
224
219
SmiMetaData colMeta = GetSmiMetaData ( ordinal ) ;
225
- if ( _usesStringStorageForXml && SqlDbType . Xml == colMeta . SqlDbType )
220
+ if ( _usesStringStorageForXml && colMeta . SqlDbType == SqlDbType . Xml )
226
221
{
227
222
return ValueUtilsSmi . GetString ( _eventSink , _recordBuffer , ordinal , s_maxNVarCharForXml ) ;
228
223
}
@@ -296,12 +291,11 @@ public virtual object GetSqlValue(int ordinal)
296
291
public virtual int GetSqlValues ( object [ ] values )
297
292
{
298
293
EnsureSubclassOverride ( ) ;
299
- if ( null == values )
294
+ if ( values == null )
300
295
{
301
296
throw ADP . ArgumentNull ( nameof ( values ) ) ;
302
297
}
303
298
304
-
305
299
int copyLength = ( values . Length < FieldCount ) ? values . Length : FieldCount ;
306
300
for ( int i = 0 ; i < copyLength ; i ++ )
307
301
{
@@ -428,7 +422,7 @@ public virtual SqlGuid GetSqlGuid(int ordinal)
428
422
public virtual int SetValues ( params object [ ] values )
429
423
{
430
424
EnsureSubclassOverride ( ) ;
431
- if ( null == values )
425
+ if ( values == null )
432
426
{
433
427
throw ADP . ArgumentNull ( nameof ( values ) ) ;
434
428
}
@@ -443,8 +437,12 @@ public virtual int SetValues(params object[] values)
443
437
{
444
438
SqlMetaData metaData = GetSqlMetaData ( i ) ;
445
439
typeCodes [ i ] = MetaDataUtilsSmi . DetermineExtendedTypeCodeForUseWithSqlDbType (
446
- metaData . SqlDbType , false /* isMultiValued */ , values [ i ] , metaData . Type ) ;
447
- if ( ExtendedClrTypeCode . Invalid == typeCodes [ i ] )
440
+ metaData . SqlDbType ,
441
+ isMultiValued : false ,
442
+ values [ i ] ,
443
+ metaData . Type
444
+ ) ;
445
+ if ( typeCodes [ i ] == ExtendedClrTypeCode . Invalid )
448
446
{
449
447
throw ADP . InvalidCast ( ) ;
450
448
}
@@ -454,7 +452,7 @@ public virtual int SetValues(params object[] values)
454
452
// the validation loop and here, or if an invalid UDT was sent).
455
453
for ( int i = 0 ; i < copyLength ; i ++ )
456
454
{
457
- ValueUtilsSmi . SetCompatibleValueV200 ( _eventSink , _recordBuffer , i , GetSmiMetaData ( i ) , values [ i ] , typeCodes [ i ] , 0 , 0 , null ) ;
455
+ ValueUtilsSmi . SetCompatibleValueV200 ( _eventSink , _recordBuffer , i , GetSmiMetaData ( i ) , values [ i ] , typeCodes [ i ] , offset : 0 , length : 0 , peekAhead : null ) ;
458
456
}
459
457
460
458
return copyLength ;
@@ -466,13 +464,17 @@ public virtual void SetValue(int ordinal, object value)
466
464
EnsureSubclassOverride ( ) ;
467
465
SqlMetaData metaData = GetSqlMetaData ( ordinal ) ;
468
466
ExtendedClrTypeCode typeCode = MetaDataUtilsSmi . DetermineExtendedTypeCodeForUseWithSqlDbType (
469
- metaData . SqlDbType , false /* isMultiValued */ , value , metaData . Type ) ;
470
- if ( ExtendedClrTypeCode . Invalid == typeCode )
467
+ metaData . SqlDbType ,
468
+ isMultiValued : false ,
469
+ value ,
470
+ metaData . Type
471
+ ) ;
472
+ if ( typeCode == ExtendedClrTypeCode . Invalid )
471
473
{
472
474
throw ADP . InvalidCast ( ) ;
473
475
}
474
476
475
- ValueUtilsSmi . SetCompatibleValueV200 ( _eventSink , _recordBuffer , ordinal , GetSmiMetaData ( ordinal ) , value , typeCode , 0 , 0 , null ) ;
477
+ ValueUtilsSmi . SetCompatibleValueV200 ( _eventSink , _recordBuffer , ordinal , GetSmiMetaData ( ordinal ) , value , typeCode , offset : 0 , length : 0 , peekAhead : null ) ;
476
478
}
477
479
478
480
/// <include file='../../../../../../../../doc/snippets/Microsoft.Data.SqlClient.Server/SqlDataRecord.xml' path='docs/members[@name="SqlDataRecord"]/SetBoolean/*' />
@@ -550,6 +552,7 @@ public virtual void SetString(int ordinal, string value)
550
552
EnsureSubclassOverride ( ) ;
551
553
ValueUtilsSmi . SetString ( _eventSink , _recordBuffer , ordinal , GetSmiMetaData ( ordinal ) , value ) ;
552
554
}
555
+
553
556
/// <include file='../../../../../../../../doc/snippets/Microsoft.Data.SqlClient.Server/SqlDataRecord.xml' path='docs/members[@name="SqlDataRecord"]/SetDecimal/*' />
554
557
public virtual void SetDecimal ( int ordinal , decimal value )
555
558
{
@@ -709,7 +712,7 @@ public virtual void SetSqlBytes(int ordinal, SqlBytes value)
709
712
public SqlDataRecord ( params SqlMetaData [ ] metaData )
710
713
{
711
714
// Initial consistency check
712
- if ( null == metaData )
715
+ if ( metaData == null )
713
716
{
714
717
throw ADP . ArgumentNull ( nameof ( metaData ) ) ;
715
718
}
@@ -718,7 +721,7 @@ public SqlDataRecord(params SqlMetaData[] metaData)
718
721
_columnSmiMetaData = new SmiExtendedMetaData [ metaData . Length ] ;
719
722
for ( int i = 0 ; i < _columnSmiMetaData . Length ; i ++ )
720
723
{
721
- if ( null == metaData [ i ] )
724
+ if ( metaData [ i ] == null )
722
725
{
723
726
throw ADP . ArgumentNull ( $ "{ nameof ( metaData ) } [{ i } ]") ;
724
727
}
@@ -727,16 +730,15 @@ public SqlDataRecord(params SqlMetaData[] metaData)
727
730
}
728
731
729
732
_eventSink = new SmiEventSink_Default ( ) ;
730
-
731
733
_recordBuffer = new MemoryRecordBuffer ( _columnSmiMetaData ) ;
732
734
_usesStringStorageForXml = true ;
733
735
_eventSink . ProcessMessagesAndThrow ( ) ;
734
736
}
735
737
736
738
internal SqlDataRecord ( SmiRecordBuffer recordBuffer , params SmiExtendedMetaData [ ] metaData )
737
739
{
738
- Debug . Assert ( null != recordBuffer , "invalid attempt to instantiate SqlDataRecord with null SmiRecordBuffer" ) ;
739
- Debug . Assert ( null != metaData , "invalid attempt to instantiate SqlDataRecord with null SmiExtendedMetaData[]" ) ;
740
+ Debug . Assert ( recordBuffer != null , "invalid attempt to instantiate SqlDataRecord with null SmiRecordBuffer" ) ;
741
+ Debug . Assert ( metaData != null , "invalid attempt to instantiate SqlDataRecord with null SmiExtendedMetaData[]" ) ;
740
742
741
743
_columnMetaData = new SqlMetaData [ metaData . Length ] ;
742
744
_columnSmiMetaData = new SmiExtendedMetaData [ metaData . Length ] ;
@@ -747,7 +749,6 @@ internal SqlDataRecord(SmiRecordBuffer recordBuffer, params SmiExtendedMetaData[
747
749
}
748
750
749
751
_eventSink = new SmiEventSink_Default ( ) ;
750
-
751
752
_recordBuffer = recordBuffer ;
752
753
_eventSink . ProcessMessagesAndThrow ( ) ;
753
754
}
@@ -763,7 +764,6 @@ internal SmiRecordBuffer RecordBuffer
763
764
}
764
765
}
765
766
766
-
767
767
internal SqlMetaData [ ] InternalGetMetaData ( )
768
768
{
769
769
return _columnMetaData ;
@@ -786,15 +786,17 @@ internal void ThrowIfInvalidOrdinal(int ordinal)
786
786
throw ADP . IndexOutOfRange ( ordinal ) ;
787
787
}
788
788
}
789
+
789
790
private void EnsureSubclassOverride ( )
790
791
{
791
- if ( null == _recordBuffer )
792
+ if ( _recordBuffer == null )
792
793
{
793
794
throw SQL . SubclassMustOverride ( ) ;
794
795
}
795
796
}
796
797
797
798
/// <include file='../../../../../../../../doc/snippets/Microsoft.Data.SqlClient.Server/SqlDataRecord.xml' path='docs/members[@name="SqlDataRecord"]/System.Data.IDataRecord.GetData/*' />
799
+ [ System . ComponentModel . EditorBrowsableAttribute ( System . ComponentModel . EditorBrowsableState . Never ) ]
798
800
IDataReader System . Data . IDataRecord . GetData ( int ordinal )
799
801
{
800
802
throw ADP . NotSupported ( ) ;
0 commit comments