private IEnumerable<IParameterSpecification> CreateParameterSpecificationsAndAssignBackTrack(IEnumerable<Parameter> sqlPatameters)
		{
			var specifications = new List<IParameterSpecification>();
			int position = 0;
			var parameters = sqlPatameters.ToArray();
			for (var sqlParameterPos = 0; sqlParameterPos < parameters.Length;)
			{
				var specification = new PositionalParameterSpecification(1, 0, position++) {ExpectedType = UniqueKeyType};
				var paramTrackers = specification.GetIdsForBackTrack(Factory);
				foreach (var paramTracker in paramTrackers)
				{
					parameters[sqlParameterPos++].BackTrack = paramTracker;
				}
				specifications.Add(specification);
			}
			return specifications;
		}
Exemplo n.º 2
0
		protected virtual IEnumerable<IParameterSpecification> CreateParameterSpecificationsAndAssignBackTrack(IEnumerable<Parameter> sqlPatameters)
		{
			// This implementation can manage even the case of batch-loading
			var specifications = new List<IParameterSpecification>();
			int position = 0;
			var parameters = sqlPatameters.ToArray();
			for (var sqlParameterPos = 0; sqlParameterPos < parameters.Length; )
			{
				var specification = new PositionalParameterSpecification(1, 0, position++) { ExpectedType = KeyType };
				var paramTrackers = specification.GetIdsForBackTrack(Factory);
				foreach (var paramTracker in paramTrackers)
				{
					parameters[sqlParameterPos++].BackTrack = paramTracker;
				}
				specifications.Add(specification);
			}
			return specifications;
		}
Exemplo n.º 3
0
		public SqlString GetPositionalParameter()
		{
			var parameterSpecification = new PositionalParameterSpecification(1, 0, GetPositionalParameterPosition());
			var parameter = Parameter.Placeholder;
			parameter.BackTrack = parameterSpecification.GetIdsForBackTrack(Factory).First();
			collectedParameters.Add(parameterSpecification);
			return new SqlString(parameter);
		}
Exemplo n.º 4
0
			public void OrdinalParameter(int position)
			{
				var paramSpec = new PositionalParameterSpecification(1, position, positionalParameterCount++);
				var parameter = Parameter.Placeholder;
				parameter.BackTrack = paramSpec.GetIdsForBackTrack(factory).First();
				parametersSpecifications.Add(paramSpec);
				result.Add(parameter);
			}