Ejemplo n.º 1
0
		/// <summary>
		/// Performs dialect-specific manipulations on the offset value before returning it.
		/// This method is applicable for use in limit statements only.
		/// </summary>
		internal static int? GetOffsetUsingDialect(RowSelection selection, Dialect.Dialect dialect)
		{
			int firstRow = GetFirstRow(selection);
			if (firstRow == 0)
				return null;
			return dialect.GetOffsetValue(firstRow);
		}
		protected object GetPagingValue(object value, Dialect.Dialect dialect, QueryParameters queryParameters)
		{
			if (isTakeParameter)
			{
				int skipParameterValue = 0;

				if (skipParameter != null)
					skipParameterValue = skipParameter.GetSkipValue(queryParameters);

				return dialect.GetLimitValue(skipParameterValue , (int)value);
			}

			if (isSkipParameter)
				return dialect.GetOffsetValue((int)value);

			return value;
		}