/// <summary> /// Obtiene un dataTable a partir de un nombre de una sentencia o procedimiento y sus parámetros /// </summary> public DataTable GetDataTable(string sql, ParametersDbCollection parameters, CommandType commandType, int pageNumber, int pageSize, TimeSpan?timeOut = null) { if (SqlParser == null || commandType != CommandType.Text) // ... si no hay un intérprete de paginación en servidor, se obtiene el DataTable directamente de la SQL { return(GetDataTable(sql, parameters, commandType, timeOut)); } else { return(GetDataTable(SqlParser.GetSqlPagination(sql, pageNumber, pageSize), parameters, commandType, timeOut)); } }
/// <summary> /// Obtiene un dataTable a partir de un nombre de una sentencia o procedimiento y sus parámetros /// </summary> public async Task <DataTable> GetDataTableAsync(string sql, ParametersDbCollection parameters, CommandType commandType, int pageNumber, int pageSize, TimeSpan?timeOut = null, CancellationToken?cancellationToken = null) { if (SqlParser == null || commandType != CommandType.Text) // ... si no hay un intérprete de paginación en servidor, se obtiene el DataTable directamente de la SQL { return(await GetDataTableAsync(sql, parameters, commandType, timeOut, cancellationToken)); } else { return(await GetDataTableAsync(SqlParser.GetSqlPagination(sql, pageNumber, pageSize), parameters, commandType, timeOut, cancellationToken)); } }
/// <summary> /// Obtiene un IDataReader a partir de un nombre de una sentencia o procedimiento y sus parámetros paginando /// en el servidor /// </summary> /// <remarks> /// Sólo está implementado totalmente para los comandos de texto, no para los procedimientos almacenados /// </remarks> public IDataReader ExecuteReader(string sql, ParametersDbCollection parameters, CommandType commandType, int pageNumber, int pageSize, TimeSpan?timeOut = null) { if (commandType == CommandType.Text && SqlParser != null) { // Crea una colección de parámetros si no existía if (parameters == null) { parameters = new ParametersDbCollection(); } // Obtiene el dataReader return(ExecuteReader(SqlParser.GetSqlPagination(sql, pageNumber, pageSize), parameters, commandType, timeOut)); } else { return(ExecuteReader(sql, parameters, commandType, timeOut)); } }
/// <summary> /// Obtiene un IDataReader a partir de un nombre de una sentencia o procedimiento y sus parámetros paginando /// en el servidor de forma asíncrona /// </summary> /// <remarks> /// Sólo está implementado totalmente para los comandos de texto, no para los procedimientos almacenados /// </remarks> public async Task <DbDataReader> ExecuteReaderAsync(string sql, ParametersDbCollection parameters, CommandType commandType, int pageNumber, int pageSize, TimeSpan?timeOut = null, CancellationToken?cancellationToken = null) { if (commandType == CommandType.Text && SqlParser != null) { // Crea una colección de parámetros si no existía if (parameters == null) { parameters = new ParametersDbCollection(); } // Obtiene el dataReader return(await ExecuteReaderAsync(SqlParser.GetSqlPagination(sql, pageNumber, pageSize), parameters, commandType, timeOut, cancellationToken)); } else { return(await ExecuteReaderAsync(sql, parameters, commandType, timeOut, cancellationToken)); } }