You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by ro...@apache.org on 2005/03/28 04:35:31 UTC

svn commit: r159218 - in incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test: Maps/MSSQL/SqlClient/EmbedParameter.xml NUnit/SqlMapTests/MSSQL/EmbedParameterTest.cs Scripts/MSSQL/README-embed-param.txt Scripts/MSSQL/embed-param-setup-init.sql Scripts/MSSQL/embed-param-test-init.sql

Author: roberto
Date: Sun Mar 27 18:35:28 2005
New Revision: 159218

URL: http://svn.apache.org/viewcvs?view=rev&rev=159218
Log:
+ Adding first version of embedStatementParams=true/false test files/scripts (no changes to core or project files in this commit)

Added:
    incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/EmbedParameter.xml
    incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/MSSQL/EmbedParameterTest.cs
    incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/README-embed-param.txt
    incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/embed-param-setup-init.sql
    incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/embed-param-test-init.sql

Added: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/EmbedParameter.xml
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/EmbedParameter.xml?view=auto&rev=159218
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/EmbedParameter.xml (added)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/EmbedParameter.xml Sun Mar 27 18:35:28 2005
@@ -0,0 +1,365 @@
+<?xml version="1.0" encoding="utf-8"?>
+<sqlMap namespace="Category" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+		xsi:noNamespaceSchemaLocation="SqlMap.xsd">
+	
+	<alias>
+		<typeAlias alias="Sample" type="IBatisNet.DataMapper.Test.Domain.Sample, IBatisNet.DataMapper.Test"/>
+	</alias>
+	
+	<statements>
+	
+		<!-- Sequential rows, table scan
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest]
+		WHERE 
+			[Many_SequenceID] = #value#
+		-->
+		<select id="GetManyRecordsBySequence" parameterClass="Integer" resultClass="Sample">
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest]
+		WHERE 
+			[Many_SequenceID] = #value#
+		</select>
+
+		<!-- Sequential rows, index seek and bookmark lookup
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest] WITH(INDEX([IDX_ManyRecordsTest_Seq])) 
+		WHERE 
+			[Many_SequenceID] = 91
+		-->
+		<select id="GetManyRecordsBySequenceWithIndex" parameterClass="Integer" resultClass="Sample">
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest] WITH(INDEX([IDX_ManyRecordsTest_Seq])) 
+		WHERE 
+			[Many_SequenceID] = #value#
+		</select>
+
+		<!-- Distributed rows, table scan
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest]
+		WHERE 
+			[Many_DistributedID] = 91
+		-->
+		<select id="GetManyRecordsByDistributed" parameterClass="Integer" resultClass="Sample">
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest]
+		WHERE 
+			[Many_DistributedID] = #value#
+		</select>
+
+		<!-- Distributed rows, index seek and bookmark lookup
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest] WITH(INDEX([IDX_ManyRecordsTest_Dist])) 
+		WHERE 
+			[Many_DistributedID] = 91
+		-->
+		<select id="GetManyRecordsByDistributedWithIndex" parameterClass="Integer" resultClass="Sample">
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest] WITH(INDEX([IDX_ManyRecordsTest_Dist])) 
+		WHERE 
+			[Many_DistributedID] = #value#
+		</select>
+
+		<!-- FifthId rows, table scan
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest]
+		WHERE 
+			[Many_FifthID] = 30000 
+		-->
+		<select id="GetManyRecordsByFifth" parameterClass="Integer" resultClass="Sample">
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest]
+		WHERE 
+			[Many_FifthID] = #value# 
+		</select>
+
+		<!-- FifthId rows OR Sequence rows, table scan
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest]
+		WHERE 
+			[Many_FifthID] = 30000 OR
+			[Many_SequenceID] = 91
+		-->
+		<select id="GetManyRecordsByFifthOrSequence" parameterClass="Hashtable" resultClass="Sample">
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest]
+		WHERE 
+			[Many_FifthID] = #FifthID# OR
+			[Many_SequenceID] = #SequenceID#
+		</select>
+
+		<!-- Date rows, table scan
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest]
+		WHERE 
+			[Many_SampleDate] BETWEEN '1999-01-01' AND '1999-01-02' 
+		-->
+		<select id="GetManyRecordsByDates" parameterClass="Hashtable" resultClass="Sample">
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest]
+		WHERE 
+			[Many_SampleDate] BETWEEN #StartDate# AND #EndDate# 
+		</select>
+
+		<!-- Char rows, table scan
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest]
+		WHERE 
+			[Many_SampleCharValue] = 'AAA'		
+		-->
+		<select id="GetManyRecordsByChar" parameterClass="String" resultClass="Sample">
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest]
+		WHERE 
+			[Many_SampleCharValue] = #value#
+		</select>
+		
+		<!-- Char rows, table scan
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest]
+		WHERE 
+			[Many_SampleCharValue] LIKE '%AAA%'		
+		-->
+		<select id="GetManyRecordsByLikeChar" parameterClass="String" resultClass="Sample">
+		SELECT 
+			[Many_FirstID] AS FirstId, 
+			[Many_SecondID] AS SecondId, 
+			[Many_ThirdID] AS ThirdId, 
+			[Many_FourthID] AS FourthId,  
+			[Many_FifthID] AS FifthId,  
+			[Many_SequenceID] AS SequenceId,  
+			[Many_DistributedID] AS DistributedId, 
+			[Many_SampleCharValue] AS SampleChar,  
+			[Many_SampleDecimal] AS SampleDecimal, 
+			[Many_SampleMoney] AS SampleMoney, 
+			[Many_SampleDate] AS SampleDate, 
+			[Many_SequenceDate] AS SequenceDate
+		FROM 
+			[dbo].[ManyRecordsTest]
+		WHERE 
+			[Many_SampleCharValue] LIKE '%$value$%'
+		</select>
+	</statements>
+	
+</sqlMap>

Added: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/MSSQL/EmbedParameterTest.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/MSSQL/EmbedParameterTest.cs?view=auto&rev=159218
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/MSSQL/EmbedParameterTest.cs (added)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/MSSQL/EmbedParameterTest.cs Sun Mar 27 18:35:28 2005
@@ -0,0 +1,161 @@
+using System;
+using System.Collections;
+
+using NUnit.Framework;
+
+using IBatisNet.DataMapper.Test.NUnit;
+using IBatisNet.DataMapper.Test.Domain;
+
+namespace IBatisNet.DataMapper.Test.NUnit.SqlMapTests.MSSQL
+{
+	/// <summary>
+	/// Summary description for EmbedParameterTest.
+	/// Test performance and sql injection using parameter values such as
+	/// '; shutdown--
+	/// or
+	/// 1; shutdown--
+	/// </summary>
+	[TestFixture] 
+	[Category("MSSQL")]
+	public class EmbedParameterTest : BaseTest
+	{
+		
+		#region SetUp & TearDown
+		/// <summary>
+		/// SetUp
+		/// </summary>
+		[SetUp] 
+		public void Init() 
+		{
+			InitSqlMap();
+			//InitScript( sqlMap.DataSource, ScriptDirectory + "embed-param-test-init.sql", false );
+		}
+
+		/// <summary>
+		/// TearDown
+		/// </summary>
+		[TearDown] 
+		public void Dispose()
+		{ /* ... */ } 
+
+		#endregion
+
+		#region Specific performance and sql injection tests for sql server
+
+		/// <summary>
+		/// Test GetManyRecordsBySequence.
+		/// </summary>
+		[Test] 
+		public void TestQueryBySequence()
+		{
+			IList list = sqlMap.QueryForList("GetManyRecordsBySequence", 91);
+
+			Assert.AreEqual(91, ((Sample) list[0]).SequenceId);
+		}
+
+		/// <summary>
+		/// Test GetManyRecordsBySequenceWithIndex.
+		/// </summary>
+		[Test] 
+		public void TestQueryBySequenceWithIndex()
+		{
+			IList list = sqlMap.QueryForList("GetManyRecordsBySequenceWithIndex", 91);
+
+			Assert.AreEqual(91, ((Sample) list[0]).SequenceId);
+		}
+
+		/// <summary>
+		/// Test GetManyRecordsByDistributed.
+		/// </summary>
+		[Test] 
+		public void TestQueryByDistributed()
+		{
+			IList list = sqlMap.QueryForList("GetManyRecordsByDistributed", 91);
+
+			Assert.AreEqual(91, ((Sample) list[0]).DistributedId);
+		}
+
+		/// <summary>
+		/// Test GetManyRecordsByDistributedWithIndex.
+		/// </summary>
+		[Test] 
+		public void TestQueryByDistributedWithIndex()
+		{
+			IList list = sqlMap.QueryForList("GetManyRecordsByDistributedWithIndex", 91);
+
+			Assert.AreEqual(91, ((Sample) list[0]).DistributedId);
+		}
+
+		/// <summary>
+		/// Test GetManyRecordsByFifth.
+		/// </summary>
+		[Test] 
+		public void TestQueryByFifth()
+		{
+			IList list = sqlMap.QueryForList("GetManyRecordsByFifth", 30000);
+
+			Assert.AreEqual(30000, ((Sample) list[0]).FifthId);
+		}
+
+		/// <summary>
+		/// Test GetManyRecordsByFifthOrSequence.
+		/// </summary>
+		[Test] 
+		public void TestQueryByFifthOrSequence()
+		{
+			Hashtable queryParams = new Hashtable();
+			queryParams.Add("FifthId", 30000);
+			queryParams.Add("SequenceId",  91);
+
+			IList list = sqlMap.QueryForList("GetManyRecordsByFifthOrSequence", queryParams);
+
+			Assert.IsNotNull(list);
+			//Assert.AreEqual(30000, ((Sample) list[0]).FifthId);
+			//Assert.AreEqual(91, ((Sample) list[0]).SequenceId);
+		}
+
+		/// <summary>
+		/// Test GetManyRecordsByDates.
+		/// </summary>
+		[Test] 
+		public void TestQueryByDates()
+		{
+			System.DateTime startDate = new System.DateTime(1999,1,1);
+			System.DateTime endDate = new System.DateTime(1999,1,2);
+
+			Hashtable queryParams = new Hashtable();
+			queryParams.Add("StartDate", startDate);
+			queryParams.Add("EndDate",  endDate);
+
+			IList list = sqlMap.QueryForList("GetManyRecordsByDates", queryParams);
+
+			Assert.IsNotNull(list);
+		}
+
+		/// <summary>
+		/// Test GetManyRecordsByLikeChar.
+		/// </summary>
+		[Test] 
+		public void TestQueryByLikeChar()
+		{
+			IList list = sqlMap.QueryForList("GetManyRecordsByLikeChar", "AAA");
+
+			Assert.IsNotNull(list);
+		}
+
+		/// <summary>
+		/// Test GetManyRecordsByChar.
+		/// </summary>
+		[Test] 
+		public void TestInjectQueryByChar()
+		{
+			IList list = sqlMap.QueryForList("GetManyRecordsByChar", "'; shutdown--");
+
+			Assert.IsNotNull(list);
+		}
+		
+		#endregion
+
+
+	}
+}

Added: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/README-embed-param.txt
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/README-embed-param.txt?view=auto&rev=159218
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/README-embed-param.txt (added)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/README-embed-param.txt Sun Mar 27 18:35:28 2005
@@ -0,0 +1,8 @@
+Technique for creating large sample test data from:
+
+http://www.sql-server-performance.com/jc_large_data_operations.asp
+
+Make sure you have enough space and have either enough processing power or 
+enough patience to run the Embed Parameters in Statement tests.
+
+Run embed-parameters-setup-init.sql prior to running tests.

Added: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/embed-param-setup-init.sql
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/embed-param-setup-init.sql?view=auto&rev=159218
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/embed-param-setup-init.sql (added)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/embed-param-setup-init.sql Sun Mar 27 18:35:28 2005
@@ -0,0 +1,94 @@
+-- Technique for creating large sample test data from
+-- http://www.sql-server-performance.com/jc_large_data_operations.asp
+
+use [IBatisNet]
+
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ManyRecords]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
+drop table [dbo].[ManyRecords]
+
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ManyRecordsTest]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
+drop table [dbo].[ManyRecordsTest]
+
+
+
+-- Create Data Storage Table
+CREATE TABLE [dbo].[ManyRecords] (
+	[Many_FirstID] [int] NOT NULL,
+	[Many_SecondID] [int] NOT NULL,
+	[Many_ThirdID] [int] NOT NULL,
+	[Many_FourthID] [int] NOT NULL,
+	[Many_FifthID] [int] NOT NULL,
+	[Many_SequenceID] [int] NOT NULL,
+	[Many_DistributedID] [int] NOT NULL,
+	[Many_SampleCharValue] [char] (10) NOT NULL,
+	[Many_SampleDecimal] [decimal] (9,4) NOT NULL,
+	[Many_SampleMoney] [money] NOT NULL,
+	[Many_SampleDate] [datetime] NOT NULL,
+	[Many_SequenceDate] [datetime] NOT NULL )
+ON [PRIMARY]             
+
+
+
+-- Create Sample Data of 1 million records (increase if needed)
+BEGIN TRANSACTION
+	DECLARE @intIndex int, @rowCount int, @seqCount int, @distValue int
+	SELECT @intIndex = 1, @rowCount = 1000000, @seqCount = 10000
+	SELECT @distValue = @rowCount/10000
+
+	WHILE @intIndex <= @rowCount
+	BEGIN
+	INSERT INTO [dbo].[ManyRecords] (
+		[Many_FirstID], 
+		[Many_SecondID], 
+		[Many_ThirdID], 
+		[Many_FourthID],  
+		[Many_FifthID],  
+		[Many_SequenceID],  
+		[Many_DistributedID], 
+		[Many_SampleCharValue],  
+		[Many_SampleDecimal], 
+		[Many_SampleMoney], 
+		[Many_SampleDate], 
+		[Many_SequenceDate] )
+	VALUES ( 
+		@intIndex, -- First
+		@intIndex/2, -- Second
+		@intIndex/4, -- Third
+		@intIndex/10, -- Fourth
+		@intIndex/20, -- Fifth
+		(@intIndex-1)/@seqCount + 1, -- Sequential value
+		(@intIndex-1)%(@distValue) + 1,  -- Distributed value
+		CHAR(65 + 26*rand())+CHAR(65 + 26*rand())+CHAR(65 + 26*rand())+CONVERT(char(6),CONVERT(int,100000*(9.0*rand()+1.0)))+CHAR(65 + 26*rand()), -- Char Value
+		10000*rand(), -- Decimal value
+		10000*rand(), -- Money value
+		DATEADD(hour,100000*rand(),'1990-01-01'), -- Date value
+		DATEADD(hour,@intIndex/5,'1990-01-01') ) -- Sequential date value
+
+	SET @intIndex = @intIndex + 1
+	END
+COMMIT TRANSACTION
+
+
+
+-- Create Test table using storage table sample data
+SELECT 
+	[Many_FirstID], 
+	[Many_SecondID], 
+	[Many_ThirdID], 
+	[Many_FourthID],  
+	[Many_FifthID],  
+	[Many_SequenceID],  
+	[Many_DistributedID], 
+	[Many_SampleCharValue],  
+	[Many_SampleDecimal], 
+	[Many_SampleMoney], 
+	[Many_SampleDate], 
+	[Many_SequenceDate]
+INTO [dbo].[ManyRecordsTest]
+FROM [dbo].[ManyRecords]
+
+
+
+-- Create Test table indexes
+CREATE INDEX [IDX_ManyRecordsTest_Seq] ON [dbo].[ManyRecordsTest] ([Many_SequenceID])  WITH SORT_IN_TEMPDB
+CREATE INDEX [IDX_ManyRecordsTest_Dist] ON [dbo].[ManyRecordsTest] ([Many_DistributedID]) WITH SORT_IN_TEMPDB
\ No newline at end of file

Added: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/embed-param-test-init.sql
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/embed-param-test-init.sql?view=auto&rev=159218
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/embed-param-test-init.sql (added)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/embed-param-test-init.sql Sun Mar 27 18:35:28 2005
@@ -0,0 +1,32 @@
+-- Technique for creating large sample test data from
+-- http://www.sql-server-performance.com/jc_large_data_operations.asp
+
+use [IBatisNet]
+
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ManyRecordsTest]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
+drop table [dbo].[ManyRecordsTest]
+
+
+
+-- Create Test table using storage table sample data
+SELECT 
+	[Many_FirstID], 
+	[Many_SecondID], 
+	[Many_ThirdID], 
+	[Many_FourthID],  
+	[Many_FifthID],  
+	[Many_SequenceID],  
+	[Many_DistributedID], 
+	[Many_SampleCharValue],  
+	[Many_SampleDecimal], 
+	[Many_SampleMoney], 
+	[Many_SampleDate], 
+	[Many_SequenceDate]
+INTO [dbo].[ManyRecordsTest]
+FROM [dbo].[ManyRecords]
+
+
+
+-- Create Test table indexes
+CREATE INDEX [IDX_ManyRecordsTest_Seq] ON [dbo].[ManyRecordsTest] ([Many_SequenceID])  WITH SORT_IN_TEMPDB
+CREATE INDEX [IDX_ManyRecordsTest_Dist] ON [dbo].[ManyRecordsTest] ([Many_DistributedID]) WITH SORT_IN_TEMPDB
\ No newline at end of file