diff options
author | Veerapuram Varadhan <v.varadhan@gmail.com> | 2010-07-13 12:58:34 +0400 |
---|---|---|
committer | Veerapuram Varadhan <v.varadhan@gmail.com> | 2010-07-13 12:58:34 +0400 |
commit | 02ff6c22768c7df7acfa7673f033b0d929bc1d2c (patch) | |
tree | 75d2f0df2fbd64a7aac76fe2c4ceb6d30fef9949 /mcs/class | |
parent | f79e862f558616ec0bf71f85654e35d69b1c13c5 (diff) |
backport of r160281
2010-07-12 Veerapuram Varadhan <vvaradhan@novell.com>
** Fixes #569543
* Tds70.cs (ExecPrepared): Revert back to old changes.
* Tds80.cs (ExecPrepared): Override for Tds 8 version that
optimizes network bandwidth.
svn path=/branches/mono-2-6/mcs/; revision=160282
Diffstat (limited to 'mcs/class')
3 files changed, 25 insertions, 4 deletions
diff --git a/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/ChangeLog b/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/ChangeLog index 37dca42e27c..36e7c529a2c 100644 --- a/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/ChangeLog +++ b/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/ChangeLog @@ -1,3 +1,10 @@ +2010-07-12 Veerapuram Varadhan <vvaradhan@novell.com> + + ** Fixes #569543 + * Tds70.cs (ExecPrepared): Revert back to old changes. + * Tds80.cs (ExecPrepared): Override for Tds 8 version that optimizes + network bandwidth. + 2010-07-10 Veerapuram Varadhan <vvaradhan@novell.com> ** Fixes 620860 diff --git a/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds70.cs b/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds70.cs index e804d143b97..d8af593d085 100644 --- a/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds70.cs +++ b/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds70.cs @@ -408,10 +408,7 @@ namespace Mono.Data.Tds.Protocol public override void ExecPrepared (string commandText, TdsMetaParameterCollection parameters, int timeout, bool wantResults) { Parameters = parameters; - if (Parameters != null && Parameters.Count > 0) - ExecRPC (TdsRpcProcId.ExecuteSql, commandText, parameters, timeout, wantResults); - else - ExecuteQuery (BuildPreparedQuery (commandText), timeout, wantResults); + ExecuteQuery (BuildPreparedQuery (commandText), timeout, wantResults); } public override void ExecProc (string commandText, TdsMetaParameterCollection parameters, int timeout, bool wantResults) diff --git a/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds80.cs b/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds80.cs index b507da39f0e..8d03305578b 100644 --- a/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds80.cs +++ b/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds80.cs @@ -233,6 +233,23 @@ namespace Mono.Data.Tds.Protocol { ExecuteQuery (sql, timeout, wantResults); } } + + public override void ExecPrepared (string commandText, TdsMetaParameterCollection parameters, int timeout, bool wantResults) + { + Parameters = parameters; + // We are connected to a Sql 7.0 server + if (TdsVersion < TdsVersion.tds80 || + Parameters == null || Parameters.Count < 1) { + base.ExecPrepared (commandText, parameters, timeout, wantResults); + return; + } + TdsMetaParameterCollection parms = new TdsMetaParameterCollection (); + parms.Add (new TdsMetaParameter ("@Handle", "int", Int32.Parse (commandText))); + foreach (TdsMetaParameter parm in Parameters) + parms.Add (parm); + + ExecRPC ("sp_execute", parms, timeout, wantResults); + } #endregion // Methods } |