1 // SqlCommandBuilderTest.cs - NUnit Test Cases for testing the
2 // SqlCommandBuilder class
5 // Sureshkumar T (tsureshkumar@novell.com)
6 // Veerapuram Varadhan (vvaradhan@novell.com)
8 // Copyright (c) 2004 Novell Inc., and the individuals listed on the
12 // Permission is hereby granted, free of charge, to any person
13 // obtaining a copy of this software and associated documentation
14 // files (the "Software"), to deal in the Software without
15 // restriction, including without limitation the rights to use, copy,
16 // modify, merge, publish, distribute, sublicense, and/or sell copies
17 // of the Software, and to permit persons to whom the Software is
18 // furnished to do so, subject to the following conditions:
20 // The above copyright notice and this permission notice shall be
21 // included in all copies or substantial portions of the Software.
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
27 // BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
28 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
29 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
34 using System
.Data
.Common
;
35 using System
.Data
.SqlClient
;
36 using System
.Data
.SqlTypes
;
39 using NUnit
.Framework
;
41 namespace MonoTests
.System
.Data
44 [Category ("sqlserver")]
45 public class SqlCommandBuilderTest
47 SqlConnection conn
= null;
48 static EngineConfig engine
;
53 conn
= new SqlConnection (ConnectionManager
.Singleton
.ConnectionString
);
54 engine
= ConnectionManager
.Singleton
.Engine
;
57 private static EngineConfig Engine
{
69 public void TearDown ()
75 public void GetInsertCommand1 ()
77 SqlCommand cmd
= null;
80 string selectQuery
= "select id, fname, lname " +
81 "from employee where id = 1";
82 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
83 DataSet ds
= new DataSet ();
84 da
.Fill (ds
, "IntTest");
85 Assert
.AreEqual (1, ds
.Tables
.Count
);
89 cb
= new SqlCommandBuilder (da
);
90 cmd
= cb
.GetInsertCommand ();
91 Assert
.AreEqual ("INSERT INTO [employee] ([id], " +
92 "[fname], [lname]) VALUES (@p1, @p2, @p3)",
93 cmd
.CommandText
, "#A1");
94 Assert
.AreSame (conn
, cmd
.Connection
, "#A2");
95 AssertInsertParameters (cmd
, false, "#A3:");
96 Assert
.AreSame (cmd
, cb
.GetInsertCommand (), "#A4");
99 cb
.QuotePrefix
= "\"";
100 cmd
= cb
.GetInsertCommand ();
101 Assert
.AreEqual ("INSERT INTO \"employee] (\"id], " +
102 "\"fname], \"lname]) VALUES (@p1, @p2, @p3)",
103 cmd
.CommandText
, "#B1");
104 Assert
.AreSame (conn
, cmd
.Connection
, "#B2");
105 AssertInsertParameters (cmd
, false, "#B3:");
106 Assert
.AreSame (cmd
, cb
.GetInsertCommand (), "#B4");
109 cb
.QuoteSuffix
= "\"";
110 cmd
= cb
.GetInsertCommand ();
111 Assert
.AreEqual ("INSERT INTO \"employee\" (\"id\", "
112 + "\"fname\", \"lname\") VALUES (@p1, @p2, @p3)",
113 cmd
.CommandText
, "#C1");
114 Assert
.AreSame (conn
, cmd
.Connection
, "#C2");
115 AssertInsertParameters (cmd
, false, "#C3");
116 Assert
.AreSame (cmd
, cb
.GetInsertCommand (), "#C4");
124 public void GetInsertCommand1_Expression ()
126 SqlCommand cmd
= null;
129 string selectQuery
= "select id, fname, lname, " +
130 "id+1 as next_id from employee where " +
132 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
133 DataSet ds
= new DataSet ();
134 da
.Fill (ds
, "IntTest");
135 Assert
.AreEqual (1, ds
.Tables
.Count
);
137 SqlCommandBuilder cb
= new SqlCommandBuilder (da
);
138 cmd
= cb
.GetInsertCommand ();
139 Assert
.AreEqual ("INSERT INTO [employee] " +
140 "([id], [fname], [lname]) VALUES " +
141 "(@p1, @p2, @p3)", cmd
.CommandText
, "#1");
142 Assert
.AreSame (conn
, cmd
.Connection
, "#2");
143 AssertInsertParameters (cmd
, false, "#3:");
150 [Test
] // GetInsertCommand (Boolean)
151 public void GetInsertCommand2 ()
153 SqlCommand cmd
= null;
156 string selectQuery
= "select id, fname, lname " +
157 "from employee where id = 1";
158 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
159 DataSet ds
= new DataSet ();
160 da
.Fill (ds
, "IntTest");
161 Assert
.AreEqual (1, ds
.Tables
.Count
);
163 SqlCommandBuilder cb
;
165 cb
= new SqlCommandBuilder (da
);
166 cmd
= cb
.GetInsertCommand (true);
167 Assert
.AreEqual ("INSERT INTO [employee] ([id], " +
168 "[fname], [lname]) VALUES (@id, @fname, " +
169 "@lname)", cmd
.CommandText
, "#A1");
170 Assert
.AreSame (conn
, cmd
.Connection
, "#A2");
171 AssertInsertParameters (cmd
, true, "#A3:");
173 cmd
= cb
.GetInsertCommand (false);
174 Assert
.AreEqual ("INSERT INTO [employee] ([id], " +
175 "[fname], [lname]) VALUES (@id, @fname, " +
176 "@lname)", cmd
.CommandText
, "#B1");
177 Assert
.AreSame (conn
, cmd
.Connection
, "#B2");
178 AssertInsertParameters (cmd
, true, "#B3:");
180 cb
= new SqlCommandBuilder (da
);
181 cmd
= cb
.GetInsertCommand (false);
182 Assert
.AreEqual ("INSERT INTO [employee] ([id], " +
183 "[fname], [lname]) VALUES (@p1, @p2, @p3)",
184 cmd
.CommandText
, "#C1");
185 Assert
.AreSame (conn
, cmd
.Connection
, "#C2");
186 AssertInsertParameters (cmd
, false, "#C3:");
188 cmd
= cb
.GetInsertCommand (true);
189 Assert
.AreEqual ("INSERT INTO [employee] ([id], " +
190 "[fname], [lname]) VALUES (@id, @fname, " +
191 "@lname)", cmd
.CommandText
, "#D1");
192 Assert
.AreSame (conn
, cmd
.Connection
, "#D2");
193 AssertInsertParameters (cmd
, true, "#D3:");
200 [Test
] // GetUpdateCommand ()
201 public void GetUpdateCommand1 ()
203 SqlCommand cmd
= null;
206 string selectQuery
= "select id, fname, lname, " +
207 "id+1 as next_id from employee where " +
208 "id = 3 and lname = 'A' and fname = 'B'";
209 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
210 DataSet ds
= new DataSet ();
211 da
.Fill (ds
, "IntTest");
212 Assert
.AreEqual (1, ds
.Tables
.Count
);
214 SqlCommandBuilder cb
= new SqlCommandBuilder (da
);
215 cmd
= cb
.GetUpdateCommand ();
216 Assert
.AreEqual ("UPDATE [employee] SET [id] = @p1, " +
217 "[fname] = @p2, [lname] = @p3 WHERE (([id] = @p4) " +
218 "AND ([fname] = @p5) AND ((@p6 = 1 " +
219 "AND [lname] IS NULL) OR ([lname] = @p7)))",
220 cmd
.CommandText
, "#A1");
221 Assert
.AreSame (conn
, cmd
.Connection
, "#A2");
222 AssertUpdateParameters (cmd
, false, "#A3:");
223 Assert
.AreSame (cmd
, cb
.GetUpdateCommand (), "#A4");
226 cb
.QuotePrefix
= "\"";
227 cmd
= cb
.GetUpdateCommand ();
228 Assert
.AreEqual ("UPDATE \"employee] SET \"id] = @p1, " +
229 "\"fname] = @p2, \"lname] = @p3 WHERE ((\"id] = @p4) " +
230 "AND (\"fname] = @p5) AND ((@p6 = 1 " +
231 "AND \"lname] IS NULL) OR (\"lname] = @p7)))",
232 cmd
.CommandText
, "#B1");
233 Assert
.AreSame (conn
, cmd
.Connection
, "#B2");
234 AssertUpdateParameters (cmd
, false, "#B3:");
235 Assert
.AreSame (cmd
, cb
.GetUpdateCommand (), "#B4");
238 cb
.QuoteSuffix
= "\"";
239 cmd
= cb
.GetUpdateCommand ();
240 Assert
.AreEqual ("UPDATE \"employee\" SET \"id\" = @p1, " +
241 "\"fname\" = @p2, \"lname\" = @p3 WHERE ((\"id\" = @p4) " +
242 "AND (\"fname\" = @p5) AND ((@p6 = 1 " +
243 "AND \"lname\" IS NULL) OR (\"lname\" = @p7)))",
244 cmd
.CommandText
, "#C1");
245 Assert
.AreSame (conn
, cmd
.Connection
, "#C2");
246 AssertUpdateParameters (cmd
, false, "#C3:");
247 Assert
.AreSame (cmd
, cb
.GetUpdateCommand (), "#C4");
254 [Test
] // GetUpdateCommand ()
255 public void GetUpdateCommand1_AutoIncrement ()
257 if (ClientVersion
== 7)
258 Assert
.Ignore ("Key information is not available for temporary tables.");
260 SqlCommand cmd
= null;
263 cmd
= conn
.CreateCommand ();
264 cmd
.CommandText
= "create table #tmp_table (id int primary key , counter int identity(1,1), value varchar(10))";
265 cmd
.ExecuteNonQuery ();
267 string selectQuery
= "select id, counter, value, id+1 as next_id from #tmp_table";
268 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
269 DataSet ds
= new DataSet ();
271 Assert
.AreEqual (1, ds
.Tables
.Count
);
272 Assert
.AreEqual (4, ds
.Tables
[0].Columns
.Count
);
274 SqlCommandBuilder cb
= new SqlCommandBuilder (da
);
275 cmd
= cb
.GetUpdateCommand ();
276 Assert
.AreEqual ("UPDATE [#tmp_table] SET [id] = @p1, " +
277 "[value] = @p2 WHERE (([id] = @p3) AND (" +
278 "[counter] = @p4) AND ((@p5 = 1 AND [value] IS NULL) " +
279 "OR ([value] = @p6)))", cmd
.CommandText
, "#1");
280 Assert
.AreEqual (6, cmd
.Parameters
.Count
, "#2");
287 [Test
] // GetUpdateCommand ()
288 public void GetUpdateCommand1_CheckParameters ()
290 SqlCommand cmd
= null;
293 SqlDataAdapter adapter
= new SqlDataAdapter (
294 "select id, type_varchar from string_family",
296 SqlCommandBuilder cb
= new SqlCommandBuilder (adapter
);
298 cmd
= cb
.GetUpdateCommand ();
299 Assert
.AreEqual (5, cmd
.Parameters
.Count
, "#1");
300 Assert
.AreEqual (SqlDbType
.Int
, cmd
.Parameters
["@p4"].SqlDbType
, "#2");
301 Assert
.AreEqual (1, cmd
.Parameters
["@p4"].Value
, "#3");
303 cmd
= cb
.GetDeleteCommand ();
304 Assert
.AreEqual (3, cmd
.Parameters
.Count
, "#4");
305 Assert
.AreEqual (SqlDbType
.Int
, cmd
.Parameters
["@p2"].SqlDbType
, "#5");
306 Assert
.AreEqual (1, cmd
.Parameters
["@p2"].Value
, "#6");
313 [Test
] // GetUpdateCommand (Boolean)
314 public void GetUpdateCommand2 ()
316 SqlCommand cmd
= null;
319 string selectQuery
= "select id, fname, lname, id+1 as next_id from employee where id = 1";
320 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
321 DataSet ds
= new DataSet ();
322 da
.Fill (ds
, "IntTest");
323 Assert
.AreEqual (1, ds
.Tables
.Count
);
325 SqlCommandBuilder cb
;
327 cb
= new SqlCommandBuilder (da
);
328 cmd
= cb
.GetUpdateCommand (true);
329 Assert
.AreEqual ("UPDATE [employee] SET [id] = @id, " +
330 "[fname] = @fname, [lname] = @lname WHERE " +
331 "(([id] = @Original_id) AND ([fname] = " +
332 "@Original_fname) AND ((@IsNull_lname = 1 " +
333 "AND [lname] IS NULL) OR ([lname] = " +
334 "@Original_lname)))", cmd
.CommandText
, "#A1");
335 Assert
.AreSame (conn
, cmd
.Connection
, "#A2");
336 AssertUpdateParameters (cmd
, true, "#A3:");
338 cmd
= cb
.GetUpdateCommand (false);
339 Assert
.AreEqual ("UPDATE [employee] SET [id] = @id, " +
340 "[fname] = @fname, [lname] = @lname WHERE " +
341 "(([id] = @Original_id) AND ([fname] = " +
342 "@Original_fname) AND ((@IsNull_lname = 1 " +
343 "AND [lname] IS NULL) OR ([lname] = " +
344 "@Original_lname)))", cmd
.CommandText
, "#B1");
345 Assert
.AreSame (conn
, cmd
.Connection
, "#B2");
346 AssertUpdateParameters (cmd
, true, "#B3:");
348 cb
= new SqlCommandBuilder (da
);
349 cmd
= cb
.GetUpdateCommand (false);
350 Assert
.AreEqual ("UPDATE [employee] SET [id] = @p1, " +
351 "[fname] = @p2, [lname] = @p3 WHERE " +
352 "(([id] = @p4) AND ([fname] = @p5) AND " +
353 "((@p6 = 1 AND [lname] IS NULL) OR " +
354 "([lname] = @p7)))", cmd
.CommandText
, "#C1");
355 Assert
.AreSame (conn
, cmd
.Connection
, "#C2");
356 AssertUpdateParameters (cmd
, false, "#C3:");
358 cmd
= cb
.GetUpdateCommand (true);
359 Assert
.AreEqual ("UPDATE [employee] SET [id] = @id, " +
360 "[fname] = @fname, [lname] = @lname WHERE " +
361 "(([id] = @Original_id) AND ([fname] = " +
362 "@Original_fname) AND ((@IsNull_lname = 1 " +
363 "AND [lname] IS NULL) OR ([lname] = " +
364 "@Original_lname)))", cmd
.CommandText
, "#D1");
365 Assert
.AreSame (conn
, cmd
.Connection
, "#D2");
366 AssertUpdateParameters (cmd
, true, "#D3:");
373 [Test
] // GetUpdateCommand (Boolean)
374 public void GetUpdateCommand2_AutoIncrement ()
376 SqlCommand cmd
= null;
379 cmd
= conn
.CreateCommand ();
380 cmd
.CommandText
= "create table #tmp_table (id int primary key , counter int identity(1,1), value varchar(10))";
381 cmd
.ExecuteNonQuery ();
383 string selectQuery
= "select id, counter, value, id+1 as next_id from #tmp_table";
384 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
385 DataSet ds
= new DataSet ();
387 Assert
.AreEqual (1, ds
.Tables
.Count
);
388 Assert
.AreEqual (4, ds
.Tables
[0].Columns
.Count
);
390 SqlCommandBuilder cb
;
392 cb
= new SqlCommandBuilder (da
);
393 cmd
= cb
.GetUpdateCommand (true);
394 Assert
.AreEqual ("UPDATE [#tmp_table] SET [id] = @id, " +
395 "[value] = @value WHERE (([id] = @Original_id) " +
396 "AND ([counter] = @Original_counter) AND " +
397 "((@IsNull_value = 1 AND [value] IS NULL) " +
398 "OR ([value] = @Original_value)))",
399 cmd
.CommandText
, "#A1");
400 Assert
.AreEqual (6, cmd
.Parameters
.Count
, "#A2");
402 cmd
= cb
.GetUpdateCommand (false);
403 Assert
.AreEqual ("UPDATE [#tmp_table] SET [id] = @id, " +
404 "[value] = @value WHERE (([id] = @Original_id) " +
405 "AND ([counter] = @Original_counter) AND " +
406 "((@IsNull_value = 1 AND [value] IS NULL) " +
407 "OR ([value] = @Original_value)))",
408 cmd
.CommandText
, "#B1");
409 Assert
.AreEqual (6, cmd
.Parameters
.Count
, "#B2");
411 cb
= new SqlCommandBuilder (da
);
412 cmd
= cb
.GetUpdateCommand (false);
413 Assert
.AreEqual ("UPDATE [#tmp_table] SET [id] = @p1, " +
414 "[value] = @p2 WHERE (([id] = @p3) " +
415 "AND ([counter] = @p4) AND ((@p5 = 1 " +
416 "AND [value] IS NULL) OR ([value] = @p6)))",
417 cmd
.CommandText
, "#C1");
418 Assert
.AreEqual (6, cmd
.Parameters
.Count
, "#C2");
420 cmd
= cb
.GetUpdateCommand (true);
421 Assert
.AreEqual ("UPDATE [#tmp_table] SET [id] = @id, " +
422 "[value] = @value WHERE (([id] = @Original_id) " +
423 "AND ([counter] = @Original_counter) AND " +
424 "((@IsNull_value = 1 AND [value] IS NULL) " +
425 "OR ([value] = @Original_value)))",
426 cmd
.CommandText
, "#D1");
427 Assert
.AreEqual (6, cmd
.Parameters
.Count
, "#D2");
434 [Test
] // GetUpdateCommand (Boolean)
435 public void GetUpdateDeleteCommand2_CheckParameters ()
437 SqlCommand cmd
= null;
440 SqlDataAdapter adapter
= new SqlDataAdapter (
441 "select id, type_varchar from string_family",
443 SqlCommandBuilder cb
= new SqlCommandBuilder (adapter
);
445 SqlCommand updateCommand
= cb
.GetUpdateCommand (true);
446 Assert
.AreEqual (5, updateCommand
.Parameters
.Count
, "#A1");
447 Assert
.AreEqual (SqlDbType
.VarChar
, updateCommand
.Parameters
["@type_varchar"].SqlDbType
, "#A2");
449 //Assert.AreEqual (1, updateCommand.Parameters ["@type_char"].Value, "#A3");
451 SqlCommand delCommand
= cb
.GetDeleteCommand (true);
452 Assert
.AreEqual (3, delCommand
.Parameters
.Count
, "#B");
453 Assert
.AreEqual (DbType
.Int32
, delCommand
.Parameters
[0].DbType
, "#B: DbType (0)");
454 Assert
.AreEqual ("@Original_id", delCommand
.Parameters
[0].ParameterName
, "#B: ParameterName (0)");
455 Assert
.AreEqual ("id", delCommand
.Parameters
[0].SourceColumn
, "#B: SourceColumn (0)");
456 Assert
.AreEqual (SqlDbType
.Int
, delCommand
.Parameters
[0].SqlDbType
, "#B: SqlDbType (0)");
457 Assert
.IsNull (delCommand
.Parameters
[0].Value
, "#B: Value (0)");
459 Assert
.AreEqual (DbType
.Int32
, delCommand
.Parameters
[1].DbType
, "#B: DbType (1)");
460 Assert
.AreEqual ("@IsNull_type_varchar", delCommand
.Parameters
[1].ParameterName
, "#B: ParameterName (1)");
461 Assert
.AreEqual ("type_varchar", delCommand
.Parameters
[1].SourceColumn
, "#B: SourceColumn (1)");
462 Assert
.AreEqual (SqlDbType
.Int
, delCommand
.Parameters
[1].SqlDbType
, "#B: SqlDbType (1)");
463 Assert
.AreEqual (1, delCommand
.Parameters
[1].Value
, "#B: Value (1)");
465 Assert
.AreEqual (DbType
.AnsiString
, delCommand
.Parameters
[2].DbType
, "#B: DbType (2)");
466 Assert
.AreEqual ("@Original_type_varchar", delCommand
.Parameters
[2].ParameterName
, "#B: ParameterName (2)");
467 Assert
.AreEqual ("type_varchar", delCommand
.Parameters
[2].SourceColumn
, "#B: SourceColumn (2)");
468 Assert
.AreEqual (SqlDbType
.VarChar
, delCommand
.Parameters
[2].SqlDbType
, "#B: SqlDbType (2)");
469 Assert
.IsNull (delCommand
.Parameters
[2].Value
, "#B: Value (2)");
477 public void GetUpdateCommandDBConcurrencyExceptionTest ()
479 string selectQuery
= "select id, fname from employee where id = 1";
480 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
481 DataSet ds
= new DataSet ();
482 da
.Fill (ds
, "IntTest");
483 Assert
.AreEqual (1, ds
.Tables
.Count
);
485 SqlCommandBuilder cb
= new SqlCommandBuilder (da
);
486 Assert
.IsNotNull (cb
);
488 DataRow
[] rows
= ds
.Tables
[0].Select ("id=1");
489 rows
[0] [0] = 6660; // non existent
490 ds
.Tables
[0].AcceptChanges (); // moves 6660 to original value
491 rows
[0] [0] = 1; // moves 6660 as search key into db table
495 } catch (DBConcurrencyException ex
) {
496 // Concurrency violation: the UpdateCommand
497 // affected 0 of the expected 1 records
498 Assert
.AreEqual (typeof (DBConcurrencyException
), ex
.GetType (), "#3");
499 Assert
.IsNull (ex
.InnerException
, "#4");
500 Assert
.IsNotNull (ex
.Message
, "#5");
501 Assert
.AreSame (rows
[0], ex
.Row
, "#6");
502 Assert
.AreEqual (1, ex
.RowCount
, "#7");
507 public void GetDeleteCommandDBConcurrencyExceptionTest ()
509 string selectQuery
= "select id, fname from employee where id = 1";
510 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
511 DataSet ds
= new DataSet ();
512 da
.Fill (ds
, "IntTest");
513 Assert
.AreEqual (1, ds
.Tables
.Count
);
515 SqlCommandBuilder cb
= new SqlCommandBuilder (da
);
516 Assert
.IsNotNull (cb
);
518 DataRow
[] rows
= ds
.Tables
[0].Select ("id=1");
519 rows
[0] [0] = 6660; // non existent
520 ds
.Tables
[0].AcceptChanges (); // moves 6660 to original value
521 rows
[0].Delete (); // moves 6660 as search key into db table
525 } catch (DBConcurrencyException ex
) {
526 // Concurrency violation: the DeleteCommand
527 // affected 0 of the expected 1 records
528 Assert
.AreEqual (typeof (DBConcurrencyException
), ex
.GetType (), "#2");
529 Assert
.IsNull (ex
.InnerException
, "#3");
530 Assert
.IsNotNull (ex
.Message
, "#4");
531 Assert
.AreSame (rows
[0], ex
.Row
, "#5");
532 Assert
.AreEqual (1, ex
.RowCount
, "#6");
536 [Test
] // GetDeleteCommand ()
537 public void GetDeleteCommand1 ()
539 SqlCommand cmd
= null;
542 string selectQuery
= "select id, fname, lname, " +
543 "id+2 as next_id from employee where " +
544 "id = 3 and lname = 'A' and fname = 'B'";
545 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
546 DataSet ds
= new DataSet ();
547 da
.Fill (ds
, "IntTest");
548 Assert
.AreEqual (1, ds
.Tables
.Count
);
550 SqlCommandBuilder cb
= new SqlCommandBuilder (da
);
551 cmd
= cb
.GetDeleteCommand ();
552 Assert
.AreEqual ("DELETE FROM [employee] WHERE " +
553 "(([id] = @p1) AND ([fname] = @p2) AND " +
554 "((@p3 = 1 AND [lname] IS NULL) OR " +
555 "([lname] = @p4)))", cmd
.CommandText
, "#A1");
556 Assert
.AreSame (conn
, cmd
.Connection
, "#A2");
557 AssertDeleteParameters (cmd
, false, "#A3:");
558 Assert
.AreSame (cmd
, cb
.GetDeleteCommand (), "#A4");
561 cb
.QuotePrefix
= "\"";
562 cmd
= cb
.GetDeleteCommand ();
564 Assert
.AreEqual ("DELETE FROM \"employee] WHERE " +
565 "((\"id] = @p1) AND (\"fname] = @p2) AND " +
566 "((@p3 = 1 AND \"lname] IS NULL) OR " +
567 "(\"lname] = @p4)))", cmd
.CommandText
, "#B1");
568 Assert
.AreSame (conn
, cmd
.Connection
, "#B2");
569 AssertDeleteParameters (cmd
, false, "#B3:");
570 Assert
.AreSame (cmd
, cb
.GetDeleteCommand (), "#B4");
573 cb
.QuoteSuffix
= "\"";
574 cmd
= cb
.GetDeleteCommand ();
576 Assert
.AreEqual ("DELETE FROM \"employee\" WHERE " +
577 "((\"id\" = @p1) AND (\"fname\" = @p2) AND " +
578 "((@p3 = 1 AND \"lname\" IS NULL) OR " +
579 "(\"lname\" = @p4)))", cmd
.CommandText
, "#C1");
580 Assert
.AreSame (conn
, cmd
.Connection
, "#C2");
581 AssertDeleteParameters (cmd
, false, "#C3:");
582 Assert
.AreSame (cmd
, cb
.GetDeleteCommand (), "#C4");
589 [Test
] // GetDeleteCommand ()
590 public void GetDeleteCommand1_AutoIncrement ()
592 if (ClientVersion
== 7)
593 Assert
.Ignore ("Key information is not available for temporary tables.");
595 SqlCommand cmd
= null;
598 cmd
= conn
.CreateCommand ();
599 cmd
.CommandText
= "create table #tmp_table (id int primary key , counter int identity(1,1), value varchar(10))";
600 cmd
.ExecuteNonQuery ();
602 string selectQuery
= "select id, counter, value, id+1 as next_id from #tmp_table";
603 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
604 DataSet ds
= new DataSet ();
606 Assert
.AreEqual (1, ds
.Tables
.Count
);
607 Assert
.AreEqual (4, ds
.Tables
[0].Columns
.Count
);
609 SqlCommandBuilder cb
= new SqlCommandBuilder (da
);
610 cmd
= cb
.GetDeleteCommand ();
611 Assert
.AreEqual ("DELETE FROM [#tmp_table] WHERE " +
612 "(([id] = @p1) AND ([counter] = @p2) AND " +
613 "((@p3 = 1 AND [value] IS NULL) OR ([value] = @p4)))",
614 cmd
.CommandText
, "#1");
615 Assert
.AreEqual (4, cmd
.Parameters
.Count
, "#2");
622 [Test
] // GetDeleteCommand ()
623 public void GetDeleteCommand1_CheckParameters ()
625 SqlCommand cmd
= null;
628 SqlDataAdapter adapter
= new SqlDataAdapter (
629 "select id, type_varchar from string_family",
631 SqlCommandBuilder cb
= new SqlCommandBuilder (adapter
);
633 cmd
= cb
.GetDeleteCommand ();
634 Assert
.AreEqual (3, cmd
.Parameters
.Count
, "#1");
635 Assert
.AreEqual (SqlDbType
.Int
, cmd
.Parameters
["@p2"].SqlDbType
, "#2");
636 Assert
.AreEqual (1, cmd
.Parameters
["@p2"].Value
, "#3");
643 [Test
] // GetDeleteCommand ()
644 public void GetDeleteCommand2 ()
646 SqlCommand cmd
= null;
649 string selectQuery
= "select id, fname, lname, id+2 as next_id from employee where id = 3";
650 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
651 DataSet ds
= new DataSet ();
652 da
.Fill (ds
, "IntTest");
653 Assert
.AreEqual (1, ds
.Tables
.Count
);
655 SqlCommandBuilder cb
;
657 cb
= new SqlCommandBuilder (da
);
658 cmd
= cb
.GetDeleteCommand (true);
659 Assert
.AreEqual ("DELETE FROM [employee] WHERE " +
660 "(([id] = @Original_id) AND ([fname] = " +
661 "@Original_fname) AND ((@IsNull_lname = 1 " +
662 "AND [lname] IS NULL) OR ([lname] = " +
663 "@Original_lname)))", cmd
.CommandText
, "#A1");
664 Assert
.AreSame (conn
, cmd
.Connection
, "#A2");
665 AssertDeleteParameters (cmd
, true, "#A3:");
666 Assert
.AreSame (cmd
, cb
.GetDeleteCommand (true), "#A4");
668 cmd
= cb
.GetDeleteCommand (false);
669 Assert
.AreEqual ("DELETE FROM [employee] WHERE " +
670 "(([id] = @Original_id) AND ([fname] = " +
671 "@Original_fname) AND ((@IsNull_lname = 1 " +
672 "AND [lname] IS NULL) OR ([lname] = " +
673 "@Original_lname)))", cmd
.CommandText
, "#B1");
674 Assert
.AreSame (conn
, cmd
.Connection
, "#B2");
675 AssertDeleteParameters (cmd
, true, "#B3:");
676 Assert
.AreSame (cmd
, cb
.GetDeleteCommand (false), "#B4");
678 cb
= new SqlCommandBuilder (da
);
679 cmd
= cb
.GetDeleteCommand (false);
680 Assert
.AreEqual ("DELETE FROM [employee] WHERE " +
681 "(([id] = @p1) AND ([fname] = @p2) AND " +
682 "((@p3 = 1 AND [lname] IS NULL) OR " +
683 "([lname] = @p4)))", cmd
.CommandText
, "#C1");
684 Assert
.AreSame (conn
, cmd
.Connection
, "#C2");
685 AssertDeleteParameters (cmd
, false, "#C3:");
686 Assert
.AreSame (cmd
, cb
.GetDeleteCommand (false), "#C4");
688 cmd
= cb
.GetDeleteCommand (true);
689 Assert
.AreEqual ("DELETE FROM [employee] WHERE " +
690 "(([id] = @Original_id) AND ([fname] = " +
691 "@Original_fname) AND ((@IsNull_lname = 1 " +
692 "AND [lname] IS NULL) OR ([lname] = " +
693 "@Original_lname)))", cmd
.CommandText
, "#D1");
694 Assert
.AreSame (conn
, cmd
.Connection
, "#D2");
695 AssertDeleteParameters (cmd
, true, "#D3:");
696 Assert
.AreSame (cmd
, cb
.GetDeleteCommand (false), "#D4");
703 [Test
] // GetDeleteCommand (Boolean)
704 public void GetDeleteCommand2_AutoIncrement ()
706 SqlCommand cmd
= null;
709 cmd
= conn
.CreateCommand ();
710 cmd
.CommandText
= "create table #tmp_table (id int primary key , counter int identity(1,1), value varchar(10))";
711 cmd
.ExecuteNonQuery ();
713 string selectQuery
= "select id, counter, value, id+1 as next_id from #tmp_table";
714 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
715 DataSet ds
= new DataSet ();
717 Assert
.AreEqual (1, ds
.Tables
.Count
);
718 Assert
.AreEqual (4, ds
.Tables
[0].Columns
.Count
);
720 SqlCommandBuilder cb
;
722 cb
= new SqlCommandBuilder (da
);
723 cmd
= cb
.GetDeleteCommand (true);
724 Assert
.AreEqual ("DELETE FROM [#tmp_table] WHERE " +
725 "(([id] = @Original_id) AND ([counter] = @Original_counter) " +
726 "AND ((@IsNull_value = 1 AND [value] IS NULL) " +
727 "OR ([value] = @Original_value)))",
728 cmd
.CommandText
, "#A1");
729 Assert
.AreEqual (4, cmd
.Parameters
.Count
, "#A2");
731 cmd
= cb
.GetDeleteCommand (false);
732 Assert
.AreEqual ("DELETE FROM [#tmp_table] WHERE " +
733 "(([id] = @Original_id) AND ([counter] = @Original_counter) " +
734 "AND ((@IsNull_value = 1 AND [value] IS NULL) " +
735 "OR ([value] = @Original_value)))",
736 cmd
.CommandText
, "#B1");
737 Assert
.AreEqual (4, cmd
.Parameters
.Count
, "#B2");
739 cb
= new SqlCommandBuilder (da
);
740 cmd
= cb
.GetDeleteCommand (false);
741 Assert
.AreEqual ("DELETE FROM [#tmp_table] WHERE " +
742 "(([id] = @p1) AND ([counter] = @p2) " +
743 "AND ((@p3 = 1 AND [value] IS NULL) " +
744 "OR ([value] = @p4)))",
745 cmd
.CommandText
, "#C1");
746 Assert
.AreEqual (4, cmd
.Parameters
.Count
, "#C2");
748 cmd
= cb
.GetDeleteCommand (true);
749 Assert
.AreEqual ("DELETE FROM [#tmp_table] WHERE " +
750 "(([id] = @Original_id) AND ([counter] = @Original_counter) " +
751 "AND ((@IsNull_value = 1 AND [value] IS NULL) " +
752 "OR ([value] = @Original_value)))",
753 cmd
.CommandText
, "#D1");
754 Assert
.AreEqual (4, cmd
.Parameters
.Count
, "#D2");
762 public void DefaultProperties ()
764 SqlCommandBuilder cb
= new SqlCommandBuilder ();
765 Assert
.AreEqual ("[", cb
.QuotePrefix
, "#5");
766 Assert
.AreEqual ("]", cb
.QuoteSuffix
, "#6");
767 Assert
.AreEqual (".", cb
.CatalogSeparator
, "#2");
768 //Assert.AreEqual ("", cb.DecimalSeparator, "#3");
769 Assert
.AreEqual (".", cb
.SchemaSeparator
, "#4");
770 Assert
.AreEqual (CatalogLocation
.Start
, cb
.CatalogLocation
, "#1");
771 Assert
.AreEqual ("[monotest]", cb
.QuoteIdentifier ("monotest"), "#7");
772 Assert
.AreEqual ("\"monotest\"", cb
.UnquoteIdentifier ("\"monotest\""), "#8");
773 //Assert.AreEqual (cb.ConflictOption.CompareAllSearchableValues, cb.ConflictDetection);
774 // FIXME: test SetAllValues
777 // FIXME: Add tests for examining RowError
778 // FIXME: Add test for ContinueUpdateOnError property
781 public void CheckParameters_BuiltCommand ()
783 SqlDataAdapter adapter
= new SqlDataAdapter ("select id,type_varchar from string_family", conn
);
784 SqlCommandBuilder cb
= new SqlCommandBuilder(adapter
);
785 DataSet ds
= new DataSet ();
788 Assert
.AreEqual (2, cb
.GetInsertCommand().Parameters
.Count
, "#1");
790 DataRow row_rsInput
= ds
.Tables
[0].NewRow();
791 row_rsInput
["id"] = 100;
792 row_rsInput
["type_varchar"] = "ttt";
793 ds
.Tables
[0].Rows
.Add(row_rsInput
);
795 Assert
.AreEqual (2, cb
.GetInsertCommand().Parameters
.Count
, "#2");
797 row_rsInput
= ds
.Tables
[0].NewRow();
798 row_rsInput
["id"] = 101;
799 row_rsInput
["type_varchar"] = "ttt";
800 ds
.Tables
[0].Rows
.Add(row_rsInput
);
802 Assert
.AreEqual (2, cb
.GetInsertCommand().Parameters
.Count
, "#3");
806 public void DeriveParameters ()
808 SqlCommand cmd
= null;
812 cmd
= conn
.CreateCommand ();
813 cmd
.CommandText
= "sp_326182a";
814 cmd
.CommandType
= CommandType
.StoredProcedure
;
815 cmd
.CommandTimeout
= 90;
816 cmd
.Parameters
.Add ("dummy", SqlDbType
.Image
, 5);
818 SqlCommandBuilder
.DeriveParameters (cmd
);
819 Assert
.AreEqual (5, cmd
.Parameters
.Count
, "#A1");
821 cmd
= conn
.CreateCommand ();
822 cmd
.CommandText
= "sp_326182b";
823 cmd
.CommandType
= CommandType
.StoredProcedure
;
824 cmd
.CommandTimeout
= 90;
825 cmd
.Parameters
.Add ("dummy", SqlDbType
.Image
, 5);
827 SqlCommandBuilder
.DeriveParameters (cmd
);
828 Assert
.AreEqual (4, cmd
.Parameters
.Count
, "#A");
830 param
= cmd
.Parameters
[0];
831 Assert
.AreEqual (ParameterDirection
.ReturnValue
, param
.Direction
, "#B:Direction");
832 Assert
.IsFalse (param
.IsNullable
, "#B:IsNullable");
833 if (ClientVersion
== 7)
834 Assert
.AreEqual ("RETURN_VALUE", param
.ParameterName
, "#B:ParameterName");
836 Assert
.AreEqual ("@RETURN_VALUE", param
.ParameterName
, "#B:ParameterName");
837 Assert
.AreEqual (0, param
.Precision
, "#B:Precision");
838 Assert
.AreEqual (0, param
.Scale
, "#B:Scale");
839 //Assert.AreEqual (0, param.Size, "#B:Size");
840 Assert
.AreEqual (SqlDbType
.Int
, param
.SqlDbType
, "#B:SqlDbType");
841 Assert
.IsNull (param
.Value
, "#B:Value");
843 param
= cmd
.Parameters
[1];
844 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, "#C:Direction");
845 Assert
.IsFalse (param
.IsNullable
, "#C:IsNullable");
846 Assert
.AreEqual ("@param0", param
.ParameterName
, "#C:ParameterName");
847 Assert
.AreEqual (0, param
.Precision
, "#C:Precision");
848 Assert
.AreEqual (0, param
.Scale
, "#C:Scale");
849 //Assert.AreEqual (0, param.Size, "#C:Size");
850 Assert
.AreEqual (SqlDbType
.Int
, param
.SqlDbType
, "#C:SqlDbType");
851 Assert
.IsNull (param
.Value
, "#C:Value");
853 param
= cmd
.Parameters
[2];
854 Assert
.AreEqual (ParameterDirection
.InputOutput
, param
.Direction
, "#D:Direction");
855 Assert
.IsFalse (param
.IsNullable
, "#D:IsNullable");
856 Assert
.AreEqual ("@param1", param
.ParameterName
, "#D:ParameterName");
857 Assert
.AreEqual (5, param
.Precision
, "#D:Precision");
858 if (ClientVersion
== 7)
859 Assert
.AreEqual (2, param
.Scale
, "#D:Scale");
861 Assert
.AreEqual (3, param
.Scale
, "#D:Scale");
862 //Assert.AreEqual (0, param.Size, "#D:Size");
863 Assert
.AreEqual (SqlDbType
.Decimal
, param
.SqlDbType
, "#D:SqlDbType");
864 Assert
.IsNull (param
.Value
, "#D:Value");
866 param
= cmd
.Parameters
[3];
867 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, "#E:Direction");
868 Assert
.IsFalse (param
.IsNullable
, "#E:IsNullable");
869 Assert
.AreEqual ("@param2", param
.ParameterName
, "#E:ParameterName");
870 Assert
.AreEqual (0, param
.Precision
, "#E:Precision");
871 Assert
.AreEqual (0, param
.Scale
, "#E:Scale");
872 Assert
.AreEqual (12, param
.Size
, "#E:Size");
873 Assert
.AreEqual (SqlDbType
.VarChar
, param
.SqlDbType
, "#E:SqlDbType");
874 Assert
.IsNull (param
.Value
, "#E:Value");
876 cmd
.Parameters
["@param0"].Value
= 5;
877 cmd
.Parameters
["@param1"].Value
= 4.000m
;
878 cmd
.Parameters
["@param2"].Value
= DBNull
.Value
;
879 cmd
.ExecuteNonQuery ();
880 if (ClientVersion
== 7)
881 Assert
.AreEqual (666, cmd
.Parameters
["RETURN_VALUE"].Value
, "#F1");
883 Assert
.AreEqual (666, cmd
.Parameters
["@RETURN_VALUE"].Value
, "#F1");
884 Assert
.AreEqual (5, cmd
.Parameters
["@param0"].Value
, "#F2");
885 Assert
.AreEqual (11m
, cmd
.Parameters
["@param1"].Value
, "#F3");
886 Assert
.AreEqual (DBNull
.Value
, cmd
.Parameters
["@param2"].Value
, "#F4");
894 public void QuotePrefix_DeleteCommand_Generated ()
896 SqlCommand cmd
= null;
899 string selectQuery
= "select id, lname from employee where id = 3";
900 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
901 DataSet ds
= new DataSet ();
902 da
.Fill (ds
, "IntTest");
904 SqlCommandBuilder cb
= new SqlCommandBuilder (da
);
905 cmd
= cb
.GetDeleteCommand ();
906 Assert
.AreEqual ("[", cb
.QuotePrefix
, "#1");
908 cb
.QuotePrefix
= "\"";
910 } catch (InvalidOperationException ex
) {
911 // The QuotePrefix and QuoteSuffix properties
912 // cannot be changed once an Insert, Update, or
913 // Delete command has been generated
914 Assert
.AreEqual (typeof (InvalidOperationException
), ex
.GetType (), "#3");
915 Assert
.IsNull (ex
.InnerException
, "#4");
916 Assert
.IsNotNull (ex
.Message
, "#5");
918 Assert
.AreEqual ("[", cb
.QuotePrefix
, "#6");
920 cb
.QuotePrefix
= "\"";
928 public void QuotePrefix_InsertCommand_Generated ()
930 SqlCommand cmd
= null;
933 string selectQuery
= "select id, lname from employee where id = 3";
934 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
935 DataSet ds
= new DataSet ();
936 da
.Fill (ds
, "IntTest");
938 SqlCommandBuilder cb
= new SqlCommandBuilder (da
);
939 cmd
= cb
.GetInsertCommand ();
940 Assert
.AreEqual ("[", cb
.QuotePrefix
, "#1");
942 cb
.QuotePrefix
= "\"";
944 } catch (InvalidOperationException ex
) {
945 // The QuotePrefix and QuoteSuffix properties
946 // cannot be changed once an Insert, Update, or
947 // Delete command has been generated
948 Assert
.AreEqual (typeof (InvalidOperationException
), ex
.GetType (), "#3");
949 Assert
.IsNull (ex
.InnerException
, "#4");
950 Assert
.IsNotNull (ex
.Message
, "#5");
952 Assert
.AreEqual ("[", cb
.QuotePrefix
, "#6");
954 cb
.QuotePrefix
= "\"";
962 public void QuotePrefix_UpdateCommand_Generated ()
964 SqlCommand cmd
= null;
967 string selectQuery
= "select id, lname from employee where id = 3";
968 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
969 DataSet ds
= new DataSet ();
970 da
.Fill (ds
, "IntTest");
972 SqlCommandBuilder cb
= new SqlCommandBuilder (da
);
973 cmd
= cb
.GetUpdateCommand ();
974 Assert
.AreEqual ("[", cb
.QuotePrefix
, "#1");
976 cb
.QuotePrefix
= "\"";
978 } catch (InvalidOperationException ex
) {
979 // The QuotePrefix and QuoteSuffix properties
980 // cannot be changed once an Insert, Update, or
981 // Delete command has been generated
982 Assert
.AreEqual (typeof (InvalidOperationException
), ex
.GetType (), "#3");
983 Assert
.IsNull (ex
.InnerException
, "#4");
984 Assert
.IsNotNull (ex
.Message
, "#5");
986 Assert
.AreEqual ("[", cb
.QuotePrefix
, "#6");
988 cb
.QuotePrefix
= "\"";
996 public void QuoteSuffix_DeleteCommand_Generated ()
998 SqlCommand cmd
= null;
1001 string selectQuery
= "select id, lname from employee where id = 3";
1002 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
1003 DataSet ds
= new DataSet ();
1004 da
.Fill (ds
, "IntTest");
1006 SqlCommandBuilder cb
= new SqlCommandBuilder (da
);
1007 cmd
= cb
.GetDeleteCommand ();
1008 Assert
.AreEqual ("]", cb
.QuoteSuffix
, "#1");
1010 cb
.QuoteSuffix
= "\"";
1012 } catch (InvalidOperationException ex
) {
1013 // The QuotePrefix and QuoteSuffix properties
1014 // cannot be changed once an Insert, Update, or
1015 // Delete command has been generated
1016 Assert
.AreEqual (typeof (InvalidOperationException
), ex
.GetType (), "#3");
1017 Assert
.IsNull (ex
.InnerException
, "#4");
1018 Assert
.IsNotNull (ex
.Message
, "#5");
1020 Assert
.AreEqual ("]", cb
.QuoteSuffix
, "#6");
1021 cb
.RefreshSchema ();
1022 cb
.QuoteSuffix
= "\"";
1030 public void QuoteSuffix_InsertCommand_Generated ()
1032 SqlCommand cmd
= null;
1035 string selectQuery
= "select id, lname from employee where id = 3";
1036 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
1037 DataSet ds
= new DataSet ();
1038 da
.Fill (ds
, "IntTest");
1040 SqlCommandBuilder cb
= new SqlCommandBuilder (da
);
1041 cmd
= cb
.GetInsertCommand ();
1042 Assert
.AreEqual ("]", cb
.QuoteSuffix
, "#1");
1044 cb
.QuoteSuffix
= "\"";
1046 } catch (InvalidOperationException ex
) {
1047 // The QuotePrefix and QuoteSuffix properties
1048 // cannot be changed once an Insert, Update, or
1049 // Delete command has been generated
1050 Assert
.AreEqual (typeof (InvalidOperationException
), ex
.GetType (), "#3");
1051 Assert
.IsNull (ex
.InnerException
, "#4");
1052 Assert
.IsNotNull (ex
.Message
, "#5");
1054 Assert
.AreEqual ("]", cb
.QuoteSuffix
, "#6");
1055 cb
.RefreshSchema ();
1056 cb
.QuoteSuffix
= "\"";
1064 public void QuoteSuffix_UpdateCommand_Generated ()
1066 SqlCommand cmd
= null;
1069 string selectQuery
= "select id, lname from employee where id = 3";
1070 SqlDataAdapter da
= new SqlDataAdapter (selectQuery
, conn
);
1071 DataSet ds
= new DataSet ();
1072 da
.Fill (ds
, "IntTest");
1074 SqlCommandBuilder cb
= new SqlCommandBuilder (da
);
1075 cmd
= cb
.GetUpdateCommand ();
1076 Assert
.AreEqual ("]", cb
.QuoteSuffix
, "#1");
1078 cb
.QuoteSuffix
= "\"";
1080 } catch (InvalidOperationException ex
) {
1081 // The QuotePrefix and QuoteSuffix properties
1082 // cannot be changed once an Insert, Update, or
1083 // Delete command has been generated
1084 Assert
.AreEqual (typeof (InvalidOperationException
), ex
.GetType (), "#3");
1085 Assert
.IsNull (ex
.InnerException
, "#4");
1086 Assert
.IsNotNull (ex
.Message
, "#5");
1088 Assert
.AreEqual ("]", cb
.QuoteSuffix
, "#6");
1089 cb
.RefreshSchema ();
1090 cb
.QuoteSuffix
= "\"";
1097 static void AssertDeleteParameters (SqlCommand cmd
, bool useColumnsForParameterNames
, string prefix
)
1101 Assert
.AreEqual (4, cmd
.Parameters
.Count
, prefix
+ "Count");
1103 param
= cmd
.Parameters
[0];
1104 Assert
.AreEqual (DbType
.Int32
, param
.DbType
, prefix
+ "DbType (0)");
1105 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, prefix
+ "Direction (0)");
1106 Assert
.IsFalse (param
.IsNullable
, prefix
+ "IsNullable (0)");
1107 Assert
.AreEqual (0, param
.Offset
, prefix
+ "Offset (0)");
1108 if (useColumnsForParameterNames
)
1109 Assert
.AreEqual ("@Original_id", param
.ParameterName
, prefix
+ "ParameterName (0)");
1111 Assert
.AreEqual ("@p1", param
.ParameterName
, prefix
+ "ParameterName (0)");
1113 if (ClientVersion
> 7)
1114 Assert
.AreEqual (0, param
.Precision
, prefix
+ "Precision (0)");
1116 Assert
.AreEqual (10, param
.Precision
, prefix
+ "Precision (0)");
1118 Assert
.AreEqual (0, param
.Scale
, prefix
+ "Scale (0)");
1119 //Assert.AreEqual (0, param.Size, prefix + "Size (0)");
1120 Assert
.AreEqual ("id", param
.SourceColumn
, prefix
+ "SourceColumn (0)");
1121 Assert
.IsFalse (param
.SourceColumnNullMapping
, prefix
+ "SourceColumnNullMapping (0)");
1122 Assert
.AreEqual (DataRowVersion
.Original
, param
.SourceVersion
, prefix
+ "SourceVersion (0)");
1123 Assert
.AreEqual (SqlDbType
.Int
, param
.SqlDbType
, prefix
+ "SqlDbType (0)");
1124 Assert
.IsNull (param
.SqlValue
, prefix
+ "SqlValue (0)");
1125 //Assert.AreEqual (string.Empty, param.UdtTypeName, prefix + "UdtTypeName (0)");
1126 Assert
.IsNull (param
.Value
, prefix
+ "Value (0)");
1127 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionDatabase
, prefix
+ "XmlSchemaCollectionDatabase (0)");
1128 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionName
, prefix
+ "XmlSchemaCollectionName (0)");
1129 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionOwningSchema
, prefix
+ "XmlSchemaCollectionOwningSchema (0)");
1132 param
= cmd
.Parameters
[1];
1133 Assert
.AreEqual (DbType
.AnsiString
, param
.DbType
, prefix
+ "DbType (2)");
1134 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, prefix
+ "Direction (2)");
1135 Assert
.IsFalse (param
.IsNullable
, prefix
+ "IsNullable (2)");
1136 Assert
.AreEqual (0, param
.Offset
, prefix
+ "Offset (2)");
1137 if (useColumnsForParameterNames
)
1138 Assert
.AreEqual ("@Original_fname", param
.ParameterName
, prefix
+ "ParameterName (2)");
1140 Assert
.AreEqual ("@p2", param
.ParameterName
, prefix
+ "ParameterName (2)");
1141 Assert
.AreEqual (0, param
.Precision
, prefix
+ "Precision (2)");
1142 Assert
.AreEqual (0, param
.Scale
, prefix
+ "Scale (2)");
1143 Assert
.AreEqual (0, param
.Size
, prefix
+ "Size (2)");
1144 Assert
.AreEqual ("fname", param
.SourceColumn
, prefix
+ "SourceColumn (2)");
1145 Assert
.IsFalse (param
.SourceColumnNullMapping
, prefix
+ "SourceColumnNullMapping (2)");
1146 Assert
.AreEqual (DataRowVersion
.Original
, param
.SourceVersion
, prefix
+ "SourceVersion (2)");
1147 Assert
.AreEqual (SqlDbType
.VarChar
, param
.SqlDbType
, prefix
+ "SqlDbType (2)");
1148 Assert
.IsNull (param
.SqlValue
, prefix
+ "SqlValue (2)");
1149 //Assert.AreEqual (string.Empty, param.UdtTypeName, prefix + "UdtTypeName (2)");
1150 Assert
.IsNull (param
.Value
, prefix
+ "Value (2)");
1151 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionDatabase
, prefix
+ "XmlSchemaCollectionDatabase (2)");
1152 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionName
, prefix
+ "XmlSchemaCollectionName (2)");
1153 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionOwningSchema
, prefix
+ "XmlSchemaCollectionOwningSchema (2)");
1155 param
= cmd
.Parameters
[2];
1156 Assert
.AreEqual (DbType
.Int32
, param
.DbType
, prefix
+ "DbType (3)");
1157 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, prefix
+ "Direction (3)");
1158 Assert
.IsFalse (param
.IsNullable
, prefix
+ "IsNullable (3)");
1159 Assert
.AreEqual (0, param
.Offset
, prefix
+ "Offset (3)");
1160 if (useColumnsForParameterNames
)
1161 Assert
.AreEqual ("@IsNull_lname", param
.ParameterName
, prefix
+ "ParameterName (3)");
1163 Assert
.AreEqual ("@p3", param
.ParameterName
, prefix
+ "ParameterName (3)");
1164 Assert
.AreEqual (0, param
.Precision
, prefix
+ "Precision (3)");
1165 Assert
.AreEqual (0, param
.Scale
, prefix
+ "Scale (3)");
1166 //Assert.AreEqual (0, param.Size, prefix + "Size (3)");
1167 Assert
.AreEqual ("lname", param
.SourceColumn
, prefix
+ "SourceColumn (3)");
1168 Assert
.IsTrue (param
.SourceColumnNullMapping
, prefix
+ "SourceColumnNullMapping (3)");
1169 Assert
.AreEqual (DataRowVersion
.Original
, param
.SourceVersion
, prefix
+ "SourceVersion (3)");
1170 Assert
.AreEqual (SqlDbType
.Int
, param
.SqlDbType
, prefix
+ "SqlDbType (3)");
1171 Assert
.AreEqual (new SqlInt32 (1), param
.SqlValue
, prefix
+ "SqlValue (3)");
1172 //Assert.AreEqual (string.Empty, param.UdtTypeName, prefix + "UdtTypeName (3)");
1173 Assert
.AreEqual (1, param
.Value
, prefix
+ "Value (3)");
1174 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionDatabase
, prefix
+ "XmlSchemaCollectionDatabase (3)");
1175 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionName
, prefix
+ "XmlSchemaCollectionName (3)");
1176 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionOwningSchema
, prefix
+ "XmlSchemaCollectionOwningSchema (3)");
1178 param
= cmd
.Parameters
[3];
1179 Assert
.AreEqual (DbType
.AnsiString
, param
.DbType
, prefix
+ "DbType (4)");
1180 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, prefix
+ "Direction (4)");
1181 Assert
.IsFalse (param
.IsNullable
, prefix
+ "IsNullable (4)");
1182 Assert
.AreEqual (0, param
.Offset
, prefix
+ "Offset (4)");
1183 if (useColumnsForParameterNames
)
1184 Assert
.AreEqual ("@Original_lname", param
.ParameterName
, prefix
+ "ParameterName (4)");
1186 Assert
.AreEqual ("@p4", param
.ParameterName
, prefix
+ "ParameterName (4)");
1187 Assert
.AreEqual (0, param
.Precision
, prefix
+ "Precision (4)");
1188 Assert
.AreEqual (0, param
.Scale
, prefix
+ "Scale (4)");
1189 Assert
.AreEqual (0, param
.Size
, prefix
+ "Size (4)");
1190 Assert
.AreEqual ("lname", param
.SourceColumn
, prefix
+ "SourceColumn (4)");
1191 Assert
.IsFalse (param
.SourceColumnNullMapping
, prefix
+ "SourceColumnNullMapping (4)");
1192 Assert
.AreEqual (DataRowVersion
.Original
, param
.SourceVersion
, prefix
+ "SourceVersion (4)");
1193 Assert
.AreEqual (SqlDbType
.VarChar
, param
.SqlDbType
, prefix
+ "SqlDbType (4)");
1194 Assert
.IsNull (param
.SqlValue
, prefix
+ "SqlValue (4)");
1195 //Assert.AreEqual (string.Empty, param.UdtTypeName, prefix + "UdtTypeName (4)");
1196 Assert
.IsNull (param
.Value
, prefix
+ "Value (4)");
1197 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionDatabase
, prefix
+ "XmlSchemaCollectionDatabase (4)");
1198 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionName
, prefix
+ "XmlSchemaCollectionName (4)");
1199 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionOwningSchema
, prefix
+ "XmlSchemaCollectionOwningSchema (4)");
1202 static void AssertInsertParameters (SqlCommand cmd
, bool useColumnsForParameterNames
, string prefix
)
1206 Assert
.AreEqual (3, cmd
.Parameters
.Count
, prefix
+ "Count");
1208 param
= cmd
.Parameters
[0];
1209 Assert
.AreEqual (DbType
.Int32
, param
.DbType
, prefix
+ "DbType (0)");
1210 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, prefix
+ "Direction (0)");
1211 Assert
.IsFalse (param
.IsNullable
, prefix
+ "IsNullable (0)");
1212 Assert
.AreEqual (0, param
.Offset
, prefix
+ "Offset (0)");
1213 if (useColumnsForParameterNames
)
1214 Assert
.AreEqual ("@id", param
.ParameterName
, prefix
+ "ParameterName (0)");
1216 Assert
.AreEqual ("@p1", param
.ParameterName
, prefix
+ "ParameterName (0)");
1218 if (ClientVersion
> 7)
1219 Assert
.AreEqual (0, param
.Precision
, prefix
+ "Precision (0)");
1221 Assert
.AreEqual (10, param
.Precision
, prefix
+ "Precision (0)");
1223 Assert
.AreEqual (0, param
.Scale
, prefix
+ "Scale (0)");
1224 //Assert.AreEqual (0, param.Size, prefix + "Size (0)");
1225 Assert
.AreEqual ("id", param
.SourceColumn
, prefix
+ "SourceColumn (0)");
1226 Assert
.IsFalse (param
.SourceColumnNullMapping
, prefix
+ "SourceColumnNullMapping (0)");
1227 Assert
.AreEqual (DataRowVersion
.Current
, param
.SourceVersion
, prefix
+ "SourceVersion (0)");
1228 Assert
.AreEqual (SqlDbType
.Int
, param
.SqlDbType
, prefix
+ "SqlDbType (0)");
1229 Assert
.IsNull (param
.SqlValue
, prefix
+ "SqlValue (0)");
1230 //Assert.AreEqual (string.Empty, param.UdtTypeName, prefix + "UdtTypeName (0)");
1231 Assert
.IsNull (param
.Value
, prefix
+ "Value (0)");
1232 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionDatabase
, prefix
+ "XmlSchemaCollectionDatabase (0)");
1233 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionName
, prefix
+ "XmlSchemaCollectionName (0)");
1234 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionOwningSchema
, prefix
+ "XmlSchemaCollectionOwningSchema (0)");
1236 param
= cmd
.Parameters
[1];
1237 Assert
.AreEqual (DbType
.AnsiString
, param
.DbType
, prefix
+ "DbType (1)");
1238 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, prefix
+ "Direction (1)");
1239 Assert
.IsFalse (param
.IsNullable
, prefix
+ "IsNullable (1)");
1240 Assert
.AreEqual (0, param
.Offset
, prefix
+ "Offset (1)");
1241 if (useColumnsForParameterNames
)
1242 Assert
.AreEqual ("@fname", param
.ParameterName
, prefix
+ "ParameterName (1)");
1244 Assert
.AreEqual ("@p2", param
.ParameterName
, prefix
+ "ParameterName (1)");
1245 Assert
.AreEqual (0, param
.Precision
, prefix
+ "Precision (1)");
1246 Assert
.AreEqual (0, param
.Scale
, prefix
+ "Scale (1)");
1247 Assert
.AreEqual (0, param
.Size
, prefix
+ "Size (1)");
1248 Assert
.AreEqual ("fname", param
.SourceColumn
, prefix
+ "SourceColumn (1)");
1249 Assert
.IsFalse (param
.SourceColumnNullMapping
, prefix
+ "SourceColumnNullMapping (1)");
1250 Assert
.AreEqual (DataRowVersion
.Current
, param
.SourceVersion
, prefix
+ "SourceVersion (1)");
1251 Assert
.AreEqual (SqlDbType
.VarChar
, param
.SqlDbType
, prefix
+ "SqlDbType (1)");
1252 Assert
.IsNull (param
.SqlValue
, prefix
+ "SqlValue (1)");
1253 //Assert.AreEqual (string.Empty, param.UdtTypeName, prefix + "UdtTypeName (1)");
1254 Assert
.IsNull (param
.Value
, prefix
+ "Value (1)");
1255 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionDatabase
, prefix
+ "XmlSchemaCollectionDatabase (1)");
1256 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionName
, prefix
+ "XmlSchemaCollectionName (1)");
1257 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionOwningSchema
, prefix
+ "XmlSchemaCollectionOwningSchema (1)");
1259 param
= cmd
.Parameters
[2];
1260 Assert
.AreEqual (DbType
.AnsiString
, param
.DbType
, prefix
+ "DbType (2)");
1261 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, prefix
+ "Direction (2)");
1262 Assert
.IsFalse (param
.IsNullable
, prefix
+ "IsNullable (2)");
1263 Assert
.AreEqual (0, param
.Offset
, prefix
+ "Offset (2)");
1264 if (useColumnsForParameterNames
)
1265 Assert
.AreEqual ("@lname", param
.ParameterName
, prefix
+ "ParameterName (2)");
1267 Assert
.AreEqual ("@p3", param
.ParameterName
, prefix
+ "ParameterName (2)");
1268 Assert
.AreEqual (0, param
.Precision
, prefix
+ "Precision (2)");
1269 Assert
.AreEqual (0, param
.Scale
, prefix
+ "Scale (2)");
1270 Assert
.AreEqual (0, param
.Size
, prefix
+ "Size (2)");
1271 Assert
.AreEqual ("lname", param
.SourceColumn
, prefix
+ "SourceColumn (2)");
1272 Assert
.IsFalse (param
.SourceColumnNullMapping
, prefix
+ "SourceColumnNullMapping (2)");
1273 Assert
.AreEqual (DataRowVersion
.Current
, param
.SourceVersion
, prefix
+ "SourceVersion (2)");
1274 Assert
.AreEqual (SqlDbType
.VarChar
, param
.SqlDbType
, prefix
+ "SqlDbType (2)");
1275 Assert
.IsNull (param
.SqlValue
, prefix
+ "SqlValue (2)");
1276 //Assert.AreEqual (string.Empty, param.UdtTypeName, prefix + "UdtTypeName (2)");
1277 Assert
.IsNull (param
.Value
, prefix
+ "Value (2)");
1278 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionDatabase
, prefix
+ "XmlSchemaCollectionDatabase (2)");
1279 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionName
, prefix
+ "XmlSchemaCollectionName (2)");
1280 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionOwningSchema
, prefix
+ "XmlSchemaCollectionOwningSchema (2)");
1283 static void AssertUpdateParameters (SqlCommand cmd
, bool useColumnsForParameterNames
, string prefix
)
1287 Assert
.AreEqual (7, cmd
.Parameters
.Count
, prefix
+ "Count");
1289 param
= cmd
.Parameters
[0];
1290 Assert
.AreEqual (DbType
.Int32
, param
.DbType
, prefix
+ "DbType (0)");
1291 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, prefix
+ "Direction (0)");
1292 Assert
.IsFalse (param
.IsNullable
, prefix
+ "IsNullable (0)");
1293 Assert
.AreEqual (0, param
.Offset
, prefix
+ "Offset (0)");
1294 if (useColumnsForParameterNames
)
1295 Assert
.AreEqual ("@id", param
.ParameterName
, prefix
+ "ParameterName (0)");
1297 Assert
.AreEqual ("@p1", param
.ParameterName
, prefix
+ "ParameterName (0)");
1299 if (ClientVersion
> 7)
1300 Assert
.AreEqual (0, param
.Precision
, prefix
+ "Precision (0)");
1302 Assert
.AreEqual (10, param
.Precision
, prefix
+ "Precision (0)");
1304 Assert
.AreEqual (0, param
.Scale
, prefix
+ "Scale (0)");
1305 //Assert.AreEqual (0, param.Size, prefix + "Size (0)");
1306 Assert
.AreEqual ("id", param
.SourceColumn
, prefix
+ "SourceColumn (0)");
1307 Assert
.IsFalse (param
.SourceColumnNullMapping
, prefix
+ "SourceColumnNullMapping (0)");
1308 Assert
.AreEqual (DataRowVersion
.Current
, param
.SourceVersion
, prefix
+ "SourceVersion (0)");
1309 Assert
.AreEqual (SqlDbType
.Int
, param
.SqlDbType
, prefix
+ "SqlDbType (0)");
1310 Assert
.IsNull (param
.SqlValue
, prefix
+ "SqlValue (0)");
1311 //Assert.AreEqual (string.Empty, param.UdtTypeName, prefix + "UdtTypeName (0)");
1312 Assert
.IsNull (param
.Value
, prefix
+ "Value (0)");
1313 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionDatabase
, prefix
+ "XmlSchemaCollectionDatabase (0)");
1314 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionName
, prefix
+ "XmlSchemaCollectionName (0)");
1315 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionOwningSchema
, prefix
+ "XmlSchemaCollectionOwningSchema (0)");
1317 param
= cmd
.Parameters
[1];
1318 Assert
.AreEqual (DbType
.AnsiString
, param
.DbType
, prefix
+ "DbType (1)");
1319 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, prefix
+ "Direction (1)");
1320 Assert
.IsFalse (param
.IsNullable
, prefix
+ "IsNullable (1)");
1321 Assert
.AreEqual (0, param
.Offset
, prefix
+ "Offset (1)");
1322 if (useColumnsForParameterNames
)
1323 Assert
.AreEqual ("@fname", param
.ParameterName
, prefix
+ "ParameterName (1)");
1325 Assert
.AreEqual ("@p2", param
.ParameterName
, prefix
+ "ParameterName (1)");
1326 Assert
.AreEqual (0, param
.Precision
, prefix
+ "Precision (1)");
1327 Assert
.AreEqual (0, param
.Scale
, prefix
+ "Scale (1)");
1328 //Assert.AreEqual (0, param.Size, prefix + "Size (1)");
1329 Assert
.AreEqual ("fname", param
.SourceColumn
, prefix
+ "SourceColumn (1)");
1330 Assert
.IsFalse (param
.SourceColumnNullMapping
, prefix
+ "SourceColumnNullMapping (1)");
1331 Assert
.AreEqual (DataRowVersion
.Current
, param
.SourceVersion
, prefix
+ "SourceVersion (1)");
1332 Assert
.AreEqual (SqlDbType
.VarChar
, param
.SqlDbType
, prefix
+ "SqlDbType (1)");
1333 Assert
.IsNull (param
.SqlValue
, prefix
+ "SqlValue (1)");
1334 //Assert.AreEqual (string.Empty, param.UdtTypeName, prefix + "UdtTypeName (1)");
1335 Assert
.IsNull (param
.Value
, prefix
+ "Value (1)");
1336 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionDatabase
, prefix
+ "XmlSchemaCollectionDatabase (1)");
1337 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionName
, prefix
+ "XmlSchemaCollectionName (1)");
1338 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionOwningSchema
, prefix
+ "XmlSchemaCollectionOwningSchema (1)");
1340 param
= cmd
.Parameters
[2];
1341 Assert
.AreEqual (DbType
.AnsiString
, param
.DbType
, prefix
+ "DbType (2)");
1342 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, prefix
+ "Direction (2)");
1343 Assert
.IsFalse (param
.IsNullable
, prefix
+ "IsNullable (2)");
1344 Assert
.AreEqual (0, param
.Offset
, prefix
+ "Offset (2)");
1345 if (useColumnsForParameterNames
)
1346 Assert
.AreEqual ("@lname", param
.ParameterName
, prefix
+ "ParameterName (2)");
1348 Assert
.AreEqual ("@p3", param
.ParameterName
, prefix
+ "ParameterName (2)");
1349 Assert
.AreEqual (0, param
.Precision
, prefix
+ "Precision (2)");
1350 Assert
.AreEqual (0, param
.Scale
, prefix
+ "Scale (2)");
1351 Assert
.AreEqual (0, param
.Size
, prefix
+ "Size (2)");
1352 Assert
.AreEqual ("lname", param
.SourceColumn
, prefix
+ "SourceColumn (2)");
1353 Assert
.IsFalse (param
.SourceColumnNullMapping
, prefix
+ "SourceColumnNullMapping (2)");
1354 Assert
.AreEqual (DataRowVersion
.Current
, param
.SourceVersion
, prefix
+ "SourceVersion (2)");
1355 Assert
.AreEqual (SqlDbType
.VarChar
, param
.SqlDbType
, prefix
+ "SqlDbType (2)");
1356 Assert
.IsNull (param
.SqlValue
, prefix
+ "SqlValue (2)");
1357 //Assert.AreEqual (string.Empty, param.UdtTypeName, prefix + "UdtTypeName (2)");
1358 Assert
.IsNull (param
.Value
, prefix
+ "Value (2)");
1359 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionDatabase
, prefix
+ "XmlSchemaCollectionDatabase (2)");
1360 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionName
, prefix
+ "XmlSchemaCollectionName (2)");
1361 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionOwningSchema
, prefix
+ "XmlSchemaCollectionOwningSchema (2)");
1363 param
= cmd
.Parameters
[3];
1364 Assert
.AreEqual (DbType
.Int32
, param
.DbType
, prefix
+ "DbType (3)");
1365 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, prefix
+ "Direction (3)");
1366 Assert
.IsFalse (param
.IsNullable
, prefix
+ "IsNullable (3)");
1367 Assert
.AreEqual (0, param
.Offset
, prefix
+ "Offset (3)");
1368 if (useColumnsForParameterNames
)
1369 Assert
.AreEqual ("@Original_id", param
.ParameterName
, prefix
+ "ParameterName (3)");
1371 Assert
.AreEqual ("@p4", param
.ParameterName
, prefix
+ "ParameterName (3)");
1373 if (ClientVersion
> 7)
1374 Assert
.AreEqual (0, param
.Precision
, prefix
+ "Precision (0)");
1376 Assert
.AreEqual (10, param
.Precision
, prefix
+ "Precision (0)");
1378 Assert
.AreEqual (0, param
.Scale
, prefix
+ "Scale (3)");
1379 //Assert.AreEqual (0, param.Size, prefix + "Size (3)");
1380 Assert
.AreEqual ("id", param
.SourceColumn
, prefix
+ "SourceColumn (3)");
1381 Assert
.IsFalse (param
.SourceColumnNullMapping
, prefix
+ "SourceColumnNullMapping (3)");
1382 Assert
.AreEqual (DataRowVersion
.Original
, param
.SourceVersion
, prefix
+ "SourceVersion (3)");
1383 Assert
.AreEqual (SqlDbType
.Int
, param
.SqlDbType
, prefix
+ "SqlDbType (3)");
1384 Assert
.IsNull (param
.SqlValue
, prefix
+ "SqlValue (3)");
1385 //Assert.AreEqual (string.Empty, param.UdtTypeName, prefix + "UdtTypeName (3)");
1386 Assert
.IsNull (param
.Value
, prefix
+ "Value (3)");
1387 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionDatabase
, prefix
+ "XmlSchemaCollectionDatabase (3)");
1388 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionName
, prefix
+ "XmlSchemaCollectionName (3)");
1389 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionOwningSchema
, prefix
+ "XmlSchemaCollectionOwningSchema (3)");
1392 param
= cmd
.Parameters
[4];
1393 Assert
.AreEqual (DbType
.AnsiString
, param
.DbType
, prefix
+ "DbType (5)");
1394 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, prefix
+ "Direction (5)");
1395 Assert
.IsFalse (param
.IsNullable
, prefix
+ "IsNullable (5)");
1396 Assert
.AreEqual (0, param
.Offset
, prefix
+ "Offset (5)");
1397 if (useColumnsForParameterNames
)
1398 Assert
.AreEqual ("@Original_fname", param
.ParameterName
, prefix
+ "ParameterName (5)");
1400 Assert
.AreEqual ("@p5", param
.ParameterName
, prefix
+ "ParameterName (5)");
1401 Assert
.AreEqual (0, param
.Precision
, prefix
+ "Precision (5)");
1402 Assert
.AreEqual (0, param
.Scale
, prefix
+ "Scale (5)");
1403 Assert
.AreEqual (0, param
.Size
, prefix
+ "Size (5)");
1404 Assert
.AreEqual ("fname", param
.SourceColumn
, prefix
+ "SourceColumn (5)");
1405 Assert
.IsFalse (param
.SourceColumnNullMapping
, prefix
+ "SourceColumnNullMapping (5)");
1406 Assert
.AreEqual (DataRowVersion
.Original
, param
.SourceVersion
, prefix
+ "SourceVersion (5)");
1407 Assert
.AreEqual (SqlDbType
.VarChar
, param
.SqlDbType
, prefix
+ "SqlDbType (5)");
1408 Assert
.IsNull (param
.SqlValue
, prefix
+ "SqlValue (5)");
1409 //Assert.AreEqual (string.Empty, param.UdtTypeName, prefix + "UdtTypeName (5)");
1410 Assert
.IsNull (param
.Value
, prefix
+ "Value (5)");
1411 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionDatabase
, prefix
+ "XmlSchemaCollectionDatabase (5)");
1412 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionName
, prefix
+ "XmlSchemaCollectionName (5)");
1413 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionOwningSchema
, prefix
+ "XmlSchemaCollectionOwningSchema (5)");
1415 param
= cmd
.Parameters
[5];
1416 Assert
.AreEqual (DbType
.Int32
, param
.DbType
, prefix
+ "DbType (6)");
1417 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, prefix
+ "Direction (6)");
1418 Assert
.IsFalse (param
.IsNullable
, prefix
+ "IsNullable (6)");
1419 Assert
.AreEqual (0, param
.Offset
, prefix
+ "Offset (6)");
1420 if (useColumnsForParameterNames
)
1421 Assert
.AreEqual ("@IsNull_lname", param
.ParameterName
, prefix
+ "ParameterName (6)");
1423 Assert
.AreEqual ("@p6", param
.ParameterName
, prefix
+ "ParameterName (6)");
1424 Assert
.AreEqual (0, param
.Precision
, prefix
+ "Precision (6)");
1425 Assert
.AreEqual (0, param
.Scale
, prefix
+ "Scale (6)");
1426 //Assert.AreEqual (0, param.Size, prefix + "Size (6)");
1427 Assert
.AreEqual ("lname", param
.SourceColumn
, prefix
+ "SourceColumn (6)");
1428 Assert
.IsTrue (param
.SourceColumnNullMapping
, prefix
+ "SourceColumnNullMapping (6)");
1429 Assert
.AreEqual (DataRowVersion
.Original
, param
.SourceVersion
, prefix
+ "SourceVersion (6)");
1430 Assert
.AreEqual (SqlDbType
.Int
, param
.SqlDbType
, prefix
+ "SqlDbType (6)");
1431 Assert
.AreEqual (new SqlInt32 (1), param
.SqlValue
, prefix
+ "SqlValue (6)");
1432 //Assert.AreEqual (string.Empty, param.UdtTypeName, prefix + "UdtTypeName (6)");
1433 Assert
.AreEqual (1, param
.Value
, prefix
+ "Value (6)");
1434 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionDatabase
, prefix
+ "XmlSchemaCollectionDatabase (6)");
1435 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionName
, prefix
+ "XmlSchemaCollectionName (6)");
1436 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionOwningSchema
, prefix
+ "XmlSchemaCollectionOwningSchema (6)");
1438 param
= cmd
.Parameters
[6];
1439 Assert
.AreEqual (DbType
.AnsiString
, param
.DbType
, prefix
+ "DbType (7)");
1440 Assert
.AreEqual (ParameterDirection
.Input
, param
.Direction
, prefix
+ "Direction (7)");
1441 Assert
.IsFalse (param
.IsNullable
, prefix
+ "IsNullable (7)");
1442 Assert
.AreEqual (0, param
.Offset
, prefix
+ "Offset (7)");
1443 if (useColumnsForParameterNames
)
1444 Assert
.AreEqual ("@Original_lname", param
.ParameterName
, prefix
+ "ParameterName (7)");
1446 Assert
.AreEqual ("@p7", param
.ParameterName
, prefix
+ "ParameterName (7)");
1447 Assert
.AreEqual (0, param
.Precision
, prefix
+ "Precision (7)");
1448 Assert
.AreEqual (0, param
.Scale
, prefix
+ "Scale (7)");
1449 Assert
.AreEqual (0, param
.Size
, prefix
+ "Size (7)");
1450 Assert
.AreEqual ("lname", param
.SourceColumn
, prefix
+ "SourceColumn (7)");
1451 Assert
.IsFalse (param
.SourceColumnNullMapping
, prefix
+ "SourceColumnNullMapping (7)");
1452 Assert
.AreEqual (DataRowVersion
.Original
, param
.SourceVersion
, prefix
+ "SourceVersion (7)");
1453 Assert
.AreEqual (SqlDbType
.VarChar
, param
.SqlDbType
, prefix
+ "SqlDbType (7)");
1454 Assert
.IsNull (param
.SqlValue
, prefix
+ "SqlValue (7)");
1455 //Assert.AreEqual (string.Empty, param.UdtTypeName, prefix + "UdtTypeName (7)");
1456 Assert
.IsNull (param
.Value
, prefix
+ "Value (7)");
1457 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionDatabase
, prefix
+ "XmlSchemaCollectionDatabase (7)");
1458 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionName
, prefix
+ "XmlSchemaCollectionName (7)");
1459 Assert
.AreEqual (string.Empty
, param
.XmlSchemaCollectionOwningSchema
, prefix
+ "XmlSchemaCollectionOwningSchema (7)");
1462 static int ClientVersion
{
1464 return (SqlCommandBuilderTest
.Engine
.ClientVersion
);