SmiRequestExecutor.cs 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864
  1. //------------------------------------------------------------------------------
  2. // <copyright file="SmiRequestExecutor.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. //------------------------------------------------------------------------------
  8. namespace Microsoft.SqlServer.Server {
  9. using System;
  10. using System.Data;
  11. using System.Data.SqlTypes;
  12. using System.Transactions;
  13. internal abstract class SmiRequestExecutor : SmiTypedGetterSetter, ITypedSettersV3, ITypedSetters, ITypedGetters, IDisposable {
  14. #region SMI active methods as of V210
  15. #region Overall control methods
  16. public virtual void Close(
  17. SmiEventSink eventSink
  18. ) {
  19. // Adding as of V3
  20. // Implement body with throw because there are only a couple of ways to get to this code:
  21. // 1) Client is calling this method even though the server negotiated for V2- and hasn't implemented V3 yet.
  22. // 2) Server didn't implement V3 on some interface, but negotiated V3+.
  23. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  24. }
  25. internal virtual SmiEventStream Execute (
  26. SmiConnection connection, // Assigned connection
  27. long transactionId, // Assigned transaction
  28. Transaction associatedTransaction, // SysTx transaction associated with request, if any.
  29. CommandBehavior behavior, // CommandBehavior,
  30. SmiExecuteType executeType // Type of execute called (NonQuery/Pipe/Reader/Row, etc)
  31. ) {
  32. // Adding as of V210
  33. // Implement body with throw because there are only a couple of ways to get to this code:
  34. // 1) Client is calling this method even though the server negotiated for V200- and hasn't implemented V210 yet.
  35. // 2) Server didn't implement V210 on some interface, but negotiated V210+.
  36. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  37. }
  38. #endregion
  39. #region Supported access method types (Get] vs. Set)
  40. // RequestExecutor only supports setting parameter values, not getting
  41. internal override bool CanGet {
  42. get {
  43. return false;
  44. }
  45. }
  46. internal override bool CanSet {
  47. get {
  48. return true;
  49. }
  50. }
  51. #endregion
  52. // SmiRequestExecutor and it's subclasses should NOT override Getters from SmiTypedGetterSetter
  53. // Calls against those methods on a Request Executor are not allowed.
  54. #region Value setters
  55. // Set DEFAULT bit for parameter
  56. internal abstract void SetDefault( int ordinal );
  57. // SmiRequestExecutor subclasses must implement all Setters from SmiTypedGetterSetter
  58. // SmiRequestExecutor itself does not need to implement these, since it inherits the default implementation from
  59. // SmiTypedGetterSetter
  60. #endregion
  61. #endregion
  62. #region Obsolete as of V210
  63. internal virtual SmiEventStream Execute (
  64. SmiConnection connection, // Assigned connection
  65. long transactionId, // Assigned transaction
  66. CommandBehavior behavior, // CommandBehavior,
  67. SmiExecuteType executeType // Type of execute called (NonQuery/Pipe/Reader/Row, etc)
  68. ) {
  69. // Obsoleting as of V210
  70. // Implement body with throw because there are only a couple of ways to get to this code:
  71. // 1) Client is calling this method even though the server negotiated for V210+ (and doesn't implement it).
  72. // 2) Server doesn't implement this method, but negotiated V200-.
  73. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  74. }
  75. #endregion
  76. #region OBSOLETE STUFF that never shipped without obsolete attribute
  77. //
  78. // IDisposable
  79. //
  80. public virtual void Dispose( ) {
  81. // ******** OBSOLETING from SMI -- use close instead.
  82. // Intended to be removed (along with removing inheriting IDisposable) prior to RTM.
  83. // Implement body with throw because there are only a couple of ways to get to this code:
  84. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  85. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  86. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  87. }
  88. // Check to see if parameter's DEFAULT bit is set
  89. internal virtual bool IsSetAsDefault( int ordinal ) {
  90. // ******** OBSOLETING from SMI -- Not needed.
  91. // Intended to be removed prior to RTM.
  92. // Implement body with throw because there are only a couple of ways to get to this code:
  93. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  94. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  95. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  96. }
  97. // Get the count of parameters
  98. public virtual int Count {
  99. get {
  100. // ******** OBSOLETING from SMI -- front end needs to keep track of input param metadata itself. Outparam metadata comes with ParametersAvailable event.
  101. // Intended to be removed prior to RTM.
  102. // Implement body with throw because there are only a couple of ways to get to this code:
  103. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  104. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  105. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  106. }
  107. }
  108. // Get the meta data associated with the parameter.
  109. public virtual SmiParameterMetaData GetMetaData( int ordinal ) {
  110. // ******** OBSOLETING from SMI -- front end needs to keep track of input param metadata itself. Outparam metadata comes with ParametersAvailable event.
  111. // Intended to be removed prior to RTM.
  112. // Implement body with throw because there are only a couple of ways to get to this code:
  113. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  114. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  115. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  116. }
  117. //
  118. // ITypedGetters methods (for output parameters) (OBSOLETE)
  119. //
  120. public virtual bool IsDBNull( int ordinal ) {
  121. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  122. // Intended to be removed prior to RTM.
  123. // Implement body with throw because there are only a couple of ways to get to this code:
  124. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  125. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  126. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  127. }
  128. public virtual SqlDbType GetVariantType( int ordinal ) {
  129. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  130. // Intended to be removed prior to RTM.
  131. // Implement body with throw because there are only a couple of ways to get to this code:
  132. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  133. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  134. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  135. }
  136. public virtual Boolean GetBoolean( int ordinal ) {
  137. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  138. // Intended to be removed prior to RTM.
  139. // Implement body with throw because there are only a couple of ways to get to this code:
  140. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  141. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  142. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  143. }
  144. public virtual Byte GetByte( int ordinal ) {
  145. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  146. // Intended to be removed prior to RTM.
  147. // Implement body with throw because there are only a couple of ways to get to this code:
  148. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  149. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  150. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  151. }
  152. public virtual long GetBytes( int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length ) {
  153. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  154. // Intended to be removed prior to RTM.
  155. // Implement body with throw because there are only a couple of ways to get to this code:
  156. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  157. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  158. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  159. }
  160. public virtual Char GetChar( int ordinal ) {
  161. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  162. // Intended to be removed prior to RTM.
  163. // Implement body with throw because there are only a couple of ways to get to this code:
  164. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  165. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  166. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  167. }
  168. public virtual long GetChars( int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length ) {
  169. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  170. // Intended to be removed prior to RTM.
  171. // Implement body with throw because there are only a couple of ways to get to this code:
  172. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  173. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  174. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  175. }
  176. public virtual Int16 GetInt16( int ordinal ) {
  177. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  178. // Intended to be removed prior to RTM.
  179. // Implement body with throw because there are only a couple of ways to get to this code:
  180. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  181. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  182. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  183. }
  184. public virtual Int32 GetInt32( int ordinal ) {
  185. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  186. // Intended to be removed prior to RTM.
  187. // Implement body with throw because there are only a couple of ways to get to this code:
  188. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  189. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  190. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  191. }
  192. public virtual Int64 GetInt64( int ordinal ) {
  193. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  194. // Intended to be removed prior to RTM.
  195. // Implement body with throw because there are only a couple of ways to get to this code:
  196. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  197. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  198. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  199. }
  200. public virtual Single GetFloat( int ordinal ) {
  201. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  202. // Intended to be removed prior to RTM.
  203. // Implement body with throw because there are only a couple of ways to get to this code:
  204. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  205. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  206. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  207. }
  208. public virtual Double GetDouble( int ordinal ) {
  209. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  210. // Intended to be removed prior to RTM.
  211. // Implement body with throw because there are only a couple of ways to get to this code:
  212. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  213. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  214. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  215. }
  216. public virtual String GetString( int ordinal ) {
  217. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  218. // Intended to be removed prior to RTM.
  219. // Implement body with throw because there are only a couple of ways to get to this code:
  220. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  221. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  222. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  223. }
  224. public virtual Decimal GetDecimal( int ordinal ) {
  225. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  226. // Intended to be removed prior to RTM.
  227. // Implement body with throw because there are only a couple of ways to get to this code:
  228. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  229. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  230. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  231. }
  232. public virtual DateTime GetDateTime( int ordinal ) {
  233. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  234. // Intended to be removed prior to RTM.
  235. // Implement body with throw because there are only a couple of ways to get to this code:
  236. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  237. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  238. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  239. }
  240. public virtual Guid GetGuid( int ordinal ) {
  241. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  242. // Intended to be removed prior to RTM.
  243. // Implement body with throw because there are only a couple of ways to get to this code:
  244. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  245. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  246. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  247. }
  248. public virtual SqlBoolean GetSqlBoolean( int ordinal ) {
  249. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  250. // Intended to be removed prior to RTM.
  251. // Implement body with throw because there are only a couple of ways to get to this code:
  252. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  253. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  254. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  255. }
  256. public virtual SqlByte GetSqlByte( int ordinal ) {
  257. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  258. // Intended to be removed prior to RTM.
  259. // Implement body with throw because there are only a couple of ways to get to this code:
  260. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  261. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  262. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  263. }
  264. public virtual SqlInt16 GetSqlInt16( int ordinal ) {
  265. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  266. // Intended to be removed prior to RTM.
  267. // Implement body with throw because there are only a couple of ways to get to this code:
  268. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  269. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  270. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  271. }
  272. public virtual SqlInt32 GetSqlInt32( int ordinal ) {
  273. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  274. // Intended to be removed prior to RTM.
  275. // Implement body with throw because there are only a couple of ways to get to this code:
  276. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  277. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  278. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  279. }
  280. public virtual SqlInt64 GetSqlInt64( int ordinal ) {
  281. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  282. // Intended to be removed prior to RTM.
  283. // Implement body with throw because there are only a couple of ways to get to this code:
  284. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  285. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  286. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  287. }
  288. public virtual SqlSingle GetSqlSingle( int ordinal ) {
  289. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  290. // Intended to be removed prior to RTM.
  291. // Implement body with throw because there are only a couple of ways to get to this code:
  292. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  293. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  294. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  295. }
  296. public virtual SqlDouble GetSqlDouble( int ordinal ) {
  297. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  298. // Intended to be removed prior to RTM.
  299. // Implement body with throw because there are only a couple of ways to get to this code:
  300. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  301. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  302. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  303. }
  304. public virtual SqlMoney GetSqlMoney( int ordinal ) {
  305. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  306. // Intended to be removed prior to RTM.
  307. // Implement body with throw because there are only a couple of ways to get to this code:
  308. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  309. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  310. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  311. }
  312. public virtual SqlDateTime GetSqlDateTime( int ordinal ) {
  313. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  314. // Intended to be removed prior to RTM.
  315. // Implement body with throw because there are only a couple of ways to get to this code:
  316. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  317. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  318. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  319. }
  320. public virtual SqlDecimal GetSqlDecimal( int ordinal ) {
  321. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  322. // Intended to be removed prior to RTM.
  323. // Implement body with throw because there are only a couple of ways to get to this code:
  324. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  325. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  326. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  327. }
  328. public virtual SqlString GetSqlString( int ordinal ) {
  329. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  330. // Intended to be removed prior to RTM.
  331. // Implement body with throw because there are only a couple of ways to get to this code:
  332. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  333. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  334. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  335. }
  336. public virtual SqlBinary GetSqlBinary( int ordinal ) {
  337. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  338. // Intended to be removed prior to RTM.
  339. // Implement body with throw because there are only a couple of ways to get to this code:
  340. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  341. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  342. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  343. }
  344. public virtual SqlGuid GetSqlGuid( int ordinal ) {
  345. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  346. // Intended to be removed prior to RTM.
  347. // Implement body with throw because there are only a couple of ways to get to this code:
  348. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  349. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  350. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  351. }
  352. public virtual SqlChars GetSqlChars( int ordinal ) {
  353. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  354. // Intended to be removed prior to RTM.
  355. // Implement body with throw because there are only a couple of ways to get to this code:
  356. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  357. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  358. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  359. }
  360. public virtual SqlBytes GetSqlBytes( int ordinal ) {
  361. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  362. // Intended to be removed prior to RTM.
  363. // Implement body with throw because there are only a couple of ways to get to this code:
  364. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  365. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  366. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  367. }
  368. public virtual SqlXml GetSqlXml( int ordinal ) {
  369. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  370. // Intended to be removed prior to RTM.
  371. // Implement body with throw because there are only a couple of ways to get to this code:
  372. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  373. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  374. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  375. }
  376. public virtual SqlXml GetSqlXmlRef( int ordinal ) {
  377. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  378. // Intended to be removed prior to RTM.
  379. // Implement body with throw because there are only a couple of ways to get to this code:
  380. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  381. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  382. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  383. }
  384. public virtual SqlBytes GetSqlBytesRef( int ordinal ) {
  385. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  386. // Intended to be removed prior to RTM.
  387. // Implement body with throw because there are only a couple of ways to get to this code:
  388. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  389. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  390. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  391. }
  392. public virtual SqlChars GetSqlCharsRef( int ordinal ) {
  393. // ******** OBSOLETING from SMI -- use ITypedGettersV3 in ParametersAvailable event instead
  394. // Intended to be removed prior to RTM.
  395. // Implement body with throw because there are only a couple of ways to get to this code:
  396. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  397. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  398. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  399. }
  400. //
  401. // ITypedSetters methods
  402. //
  403. public virtual void SetDBNull( int ordinal ) {
  404. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  405. // Intended to be removed prior to RTM.
  406. // Implement body with throw because there are only a couple of ways to get to this code:
  407. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  408. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  409. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  410. }
  411. public virtual void SetBoolean( int ordinal, Boolean value ) {
  412. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  413. // Intended to be removed prior to RTM.
  414. // Implement body with throw because there are only a couple of ways to get to this code:
  415. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  416. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  417. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  418. }
  419. public virtual void SetByte( int ordinal, Byte value ) {
  420. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  421. // Intended to be removed prior to RTM.
  422. // Implement body with throw because there are only a couple of ways to get to this code:
  423. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  424. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  425. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  426. }
  427. public virtual void SetBytes( int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length ) {
  428. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  429. // Intended to be removed prior to RTM.
  430. // Implement body with throw because there are only a couple of ways to get to this code:
  431. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  432. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  433. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  434. }
  435. public virtual void SetChar( int ordinal, char value ) {
  436. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  437. // Intended to be removed prior to RTM.
  438. // Implement body with throw because there are only a couple of ways to get to this code:
  439. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  440. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  441. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  442. }
  443. public virtual void SetChars( int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length ) {
  444. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  445. // Intended to be removed prior to RTM.
  446. // Implement body with throw because there are only a couple of ways to get to this code:
  447. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  448. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  449. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  450. }
  451. public virtual void SetInt16( int ordinal, Int16 value ) {
  452. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  453. // Intended to be removed prior to RTM.
  454. // Implement body with throw because there are only a couple of ways to get to this code:
  455. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  456. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  457. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  458. }
  459. public virtual void SetInt32( int ordinal, Int32 value ) {
  460. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  461. // Intended to be removed prior to RTM.
  462. // Implement body with throw because there are only a couple of ways to get to this code:
  463. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  464. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  465. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  466. }
  467. public virtual void SetInt64( int ordinal, Int64 value ) {
  468. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  469. // Intended to be removed prior to RTM.
  470. // Implement body with throw because there are only a couple of ways to get to this code:
  471. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  472. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  473. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  474. }
  475. public virtual void SetFloat( int ordinal, Single value ) {
  476. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  477. // Intended to be removed prior to RTM.
  478. // Implement body with throw because there are only a couple of ways to get to this code:
  479. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  480. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  481. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  482. }
  483. public virtual void SetDouble( int ordinal, Double value ) {
  484. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  485. // Intended to be removed prior to RTM.
  486. // Implement body with throw because there are only a couple of ways to get to this code:
  487. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  488. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  489. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  490. }
  491. public virtual void SetString( int ordinal, string value )
  492. {
  493. // Implemented as virtual method to allow transport to remove it's implementation
  494. // Implement body with throw because there are only a couple of ways to get to this code:
  495. // 1) Client is calling this method even though the server negotiated for V2 and dropped support for V1.
  496. // 2) Server didn't implement V1 on some interface and negotiated V1.
  497. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  498. }
  499. public virtual void SetString( int ordinal, string value, int offset ) {
  500. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  501. // Intended to be removed prior to RTM.
  502. // Implement body with throw because there are only a couple of ways to get to this code:
  503. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  504. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  505. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  506. }
  507. public virtual void SetDecimal( int ordinal, Decimal value ) {
  508. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  509. // Intended to be removed prior to RTM.
  510. // Implement body with throw because there are only a couple of ways to get to this code:
  511. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  512. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  513. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  514. }
  515. public virtual void SetDateTime( int ordinal, DateTime value ) {
  516. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  517. // Intended to be removed prior to RTM.
  518. // Implement body with throw because there are only a couple of ways to get to this code:
  519. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  520. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  521. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  522. }
  523. public virtual void SetGuid( int ordinal, Guid value ) {
  524. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  525. // Intended to be removed prior to RTM.
  526. // Implement body with throw because there are only a couple of ways to get to this code:
  527. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  528. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  529. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  530. }
  531. public virtual void SetSqlBoolean( int ordinal, SqlBoolean value ) {
  532. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  533. // Intended to be removed prior to RTM.
  534. // Implement body with throw because there are only a couple of ways to get to this code:
  535. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  536. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  537. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  538. }
  539. public virtual void SetSqlByte( int ordinal, SqlByte value ) {
  540. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  541. // Intended to be removed prior to RTM.
  542. // Implement body with throw because there are only a couple of ways to get to this code:
  543. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  544. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  545. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  546. }
  547. public virtual void SetSqlInt16( int ordinal, SqlInt16 value ) {
  548. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  549. // Intended to be removed prior to RTM.
  550. // Implement body with throw because there are only a couple of ways to get to this code:
  551. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  552. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  553. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  554. }
  555. public virtual void SetSqlInt32( int ordinal, SqlInt32 value ) {
  556. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  557. // Intended to be removed prior to RTM.
  558. // Implement body with throw because there are only a couple of ways to get to this code:
  559. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  560. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  561. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  562. }
  563. public virtual void SetSqlInt64( int ordinal, SqlInt64 value ) {
  564. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  565. // Intended to be removed prior to RTM.
  566. // Implement body with throw because there are only a couple of ways to get to this code:
  567. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  568. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  569. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  570. }
  571. public virtual void SetSqlSingle( int ordinal, SqlSingle value ) {
  572. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  573. // Intended to be removed prior to RTM.
  574. // Implement body with throw because there are only a couple of ways to get to this code:
  575. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  576. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  577. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  578. }
  579. public virtual void SetSqlDouble( int ordinal, SqlDouble value ) {
  580. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  581. // Intended to be removed prior to RTM.
  582. // Implement body with throw because there are only a couple of ways to get to this code:
  583. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  584. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  585. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  586. }
  587. public virtual void SetSqlMoney( int ordinal, SqlMoney value ) {
  588. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  589. // Intended to be removed prior to RTM.
  590. // Implement body with throw because there are only a couple of ways to get to this code:
  591. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  592. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  593. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  594. }
  595. public virtual void SetSqlDateTime( int ordinal, SqlDateTime value ) {
  596. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  597. // Intended to be removed prior to RTM.
  598. // Implement body with throw because there are only a couple of ways to get to this code:
  599. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  600. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  601. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  602. }
  603. public virtual void SetSqlDecimal( int ordinal, SqlDecimal value ) {
  604. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  605. // Intended to be removed prior to RTM.
  606. // Implement body with throw because there are only a couple of ways to get to this code:
  607. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  608. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  609. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  610. }
  611. public virtual void SetSqlString( int ordinal, SqlString value )
  612. {
  613. // Implemented as empty virtual method to allow transport to remove it's implementation
  614. // Implement body with throw because there are only a couple of ways to get to this code:
  615. // 1) Client is calling this method even though the server negotiated for V2 and dropped support for V1.
  616. // 2) Server didn't implement V1 on some interface and negotiated V1.
  617. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  618. }
  619. public virtual void SetSqlString( int ordinal, SqlString value, int offset ) {
  620. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  621. // Intended to be removed prior to RTM.
  622. // Implement body with throw because there are only a couple of ways to get to this code:
  623. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  624. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  625. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  626. }
  627. public virtual void SetSqlBinary( int ordinal, SqlBinary value )
  628. {
  629. // Implemented as empty virtual method to allow transport to remove it's implementation
  630. // Implement body with throw because there are only a couple of ways to get to this code:
  631. // 1) Client is calling this method even though the server negotiated for V2 and dropped support for V1.
  632. // 2) Server didn't implement V1 on some interface and negotiated V1.
  633. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  634. }
  635. public virtual void SetSqlBinary( int ordinal, SqlBinary value, int offset ) {
  636. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  637. // Intended to be removed prior to RTM.
  638. // Implement body with throw because there are only a couple of ways to get to this code:
  639. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  640. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  641. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  642. }
  643. public virtual void SetSqlGuid( int ordinal, SqlGuid value ) {
  644. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  645. // Intended to be removed prior to RTM.
  646. // Implement body with throw because there are only a couple of ways to get to this code:
  647. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  648. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  649. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  650. }
  651. public virtual void SetSqlChars( int ordinal, SqlChars value )
  652. {
  653. // Implemented as empty virtual method to allow transport to remove it's implementation
  654. // Implement body with throw because there are only a couple of ways to get to this code:
  655. // 1) Client is calling this method even though the server negotiated for V2 and dropped support for V1.
  656. // 2) Server didn't implement V1 on some interface and negotiated V1.
  657. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  658. }
  659. public virtual void SetSqlChars( int ordinal, SqlChars value, int offset ) {
  660. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  661. // Intended to be removed prior to RTM.
  662. // Implement body with throw because there are only a couple of ways to get to this code:
  663. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  664. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  665. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  666. }
  667. public virtual void SetSqlBytes( int ordinal, SqlBytes value )
  668. {
  669. // Implemented as empty virtual method to allow transport to remove it's implementation
  670. // Implement body with throw because there are only a couple of ways to get to this code:
  671. // 1) Client is calling this method even though the server negotiated for V2 and dropped support for V1.
  672. // 2) Server didn't implement V1 on some interface and negotiated V1.
  673. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  674. }
  675. public virtual void SetSqlBytes( int ordinal, SqlBytes value, int offset ) {
  676. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  677. // Intended to be removed prior to RTM.
  678. // Implement body with throw because there are only a couple of ways to get to this code:
  679. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  680. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  681. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  682. }
  683. public virtual void SetSqlXml( int ordinal, SqlXml value ) {
  684. // ******** OBSOLETING from SMI -- use related ITypedSettersV3 method instead
  685. // Intended to be removed prior to RTM.
  686. // Implement body with throw because there are only a couple of ways to get to this code:
  687. // 1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-.
  688. // 2) Server didn't implement V2- on some interface and negotiated V2-.
  689. throw System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
  690. }
  691. #endregion
  692. }
  693. }