/// <summary> /// Lee los parámetros de salida /// </summary> private ParametersDBCollection ReadOutputParameters(IDataParameterCollection objColOutputParameters) { ParametersDBCollection objColParameters = new ParametersDBCollection(); // Recupera los parámetros foreach (IDataParameter objOutputParameter in objColOutputParameters) { ParameterDB objParameter = new ParameterDB(); // Asigna los datos objParameter.Name = objOutputParameter.ParameterName; objParameter.Direction = objOutputParameter.Direction; if (objOutputParameter.Value == DBNull.Value) { objParameter.Value = null; } else { objParameter.Value = objOutputParameter.Value; } // Añade el parámetro a la colección objColParameters.Add(objParameter); } // Devuelve la colección de parámetros return(objColParameters); }
/// <summary> /// Obtiene un parámetro SQLServer a partir de un parámetro genérico /// </summary> private IDataParameter GetSQLParameter(ParameterDB objParameter) { IDataParameter objDBParameter = ConvertParameter(objParameter); // Asigna el valor objDBParameter.Value = objParameter.GetDBValue(); // Asigna la dirección objDBParameter.Direction = objParameter.Direction; // Devuelve el parámetro return(objDBParameter); }
/// <summary> /// Convierte un parámetro /// </summary> protected override IDataParameter ConvertParameter(ParameterDB objParameter) { if (objParameter.Direction == ParameterDirection.ReturnValue) { return(new SqlParameter(objParameter.Name, SqlDbType.Int)); } else if (objParameter.Value == null) { return(new SqlParameter(objParameter.Name, null)); } else if (objParameter.IsText) { return(new SqlParameter(objParameter.Name, SqlDbType.Text)); } else if (objParameter.Value is bool?) { return(new SqlParameter(objParameter.Name, SqlDbType.Bit)); } else if (objParameter.Value is int?) { return(new SqlParameter(objParameter.Name, SqlDbType.Int)); } else if (objParameter.Value is double?) { return(new SqlParameter(objParameter.Name, SqlDbType.Float)); } else if (objParameter.Value is string) { return(new SqlParameter(objParameter.Name, SqlDbType.VarChar, objParameter.Length)); } else if (objParameter.Value is byte []) { return(new SqlParameter(objParameter.Name, SqlDbType.Image)); } else if (objParameter.Value is DateTime?) { return(new SqlParameter(objParameter.Name, SqlDbType.DateTime)); } else { throw new NotSupportedException("Tipo del parámetro " + objParameter.Name + "desconocido"); } }
/// <summary> /// Obtiene un parámetro SQLServer a partir de un parámetro genérico /// </summary> protected override IDataParameter ConvertParameter(ParameterDB objParameter) { if (objParameter.Direction == ParameterDirection.ReturnValue) { return(new OdbcParameter(objParameter.Name, OdbcType.Int)); } else if (objParameter.IsText) { return(new OdbcParameter(objParameter.Name, OdbcType.VarChar)); } else if (objParameter.Value is bool) { return(new OdbcParameter(objParameter.Name, OdbcType.Bit)); } else if (objParameter.Value is int) { return(new OdbcParameter(objParameter.Name, OdbcType.Int)); } else if (objParameter.Value is double) { return(new OdbcParameter(objParameter.Name, OdbcType.Double)); } else if (objParameter.Value is string) { return(new OdbcParameter(objParameter.Name, OdbcType.VarChar, objParameter.Length)); } else if (objParameter.Value is byte []) { return(new OdbcParameter(objParameter.Name, OdbcType.Binary)); } else if (objParameter.Value is DateTime) { return(new OdbcParameter(objParameter.Name, OdbcType.Date)); } else { throw new NotSupportedException("Tipo del parámetro " + objParameter.Name + "desconocido"); } }
/// <summary> /// Método abstracto para convertir un parámetro /// </summary> protected abstract IDataParameter ConvertParameter(ParameterDB objParameter);