1 //------------------------------------------------------------------------------
2 // <copyright file="TdsParameterSetter.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
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
{
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
;
28 #region ctor & control
30 internal TdsParameterSetter(TdsParserStateObject stateObj
, SmiMetaData md
) {
31 _target
= new TdsRecordBufferSetter(stateObj
, md
);
36 #region TypedGetterSetter overrides
37 // Are calls to Get methods allowed?
38 internal override bool CanGet
{
44 // Are calls to Set methods allowed?
45 internal override bool CanSet
{
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
);
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
);