Updates referencesource to .NET 4.7
[mono-project.git] / mcs / class / referencesource / System.Data / System / Data / SqlClient / TdsParameterSetter.cs
blob18da7f1535441a0c73c02f9bc0f7fc18bbe6914b
1 //------------------------------------------------------------------------------
2 // <copyright file="TdsParameterSetter.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 // </copyright>
5 // <owner current="true" primary="true">Microsoft</owner>
6 // <owner current="true" primary="false">Microsoft</owner>
7 // <owner current="true" primary="false">Microsoft</owner>
8 //------------------------------------------------------------------------------
10 namespace System.Data.SqlClient {
11 using System;
12 using System.Data;
13 using System.Data.SqlTypes;
14 using System.Diagnostics;
16 using Microsoft.SqlServer.Server;
18 // Simple Getter/Setter for structured parameters to allow using common ValueUtilsSmi code.
19 // This is a stand-in to having a true SmiRequestExecutor class for TDS.
20 internal class TdsParameterSetter : SmiTypedGetterSetter {
22 #region Private fields
24 private TdsRecordBufferSetter _target;
26 #endregion
28 #region ctor & control
30 internal TdsParameterSetter(TdsParserStateObject stateObj, SmiMetaData md) {
31 _target = new TdsRecordBufferSetter(stateObj, md);
34 #endregion
36 #region TypedGetterSetter overrides
37 // Are calls to Get methods allowed?
38 internal override bool CanGet {
39 get {
40 return false;
44 // Are calls to Set methods allowed?
45 internal override bool CanSet {
46 get {
47 return true;
51 // valid for structured types
52 // This method called for both get and set.
53 internal override SmiTypedGetterSetter GetTypedGetterSetter(SmiEventSink sink, int ordinal) {
54 Debug.Assert(0==ordinal, "TdsParameterSetter only supports 0 for ordinal. Actual = " + ordinal);
55 return _target;
58 // Set value to null
59 // valid for all types
60 public override void SetDBNull(SmiEventSink sink, int ordinal) {
61 Debug.Assert(0==ordinal, "TdsParameterSetter only supports 0 for ordinal. Actual = " + ordinal);
63 _target.EndElements(sink);
66 #endregion