/// <summary> /// Convierte un objeto en una cadena para el contenido de una variable de SqlCmd /// </summary> private string ConvertToSqlValue(ParameterDb parameterDb) { if (parameterDb.Value == null || parameterDb.Value == DBNull.Value) return "NULL"; else switch (parameterDb.Value) { case int valueInteger: return ConvertIntToSql(valueInteger); case short valueInteger: return ConvertIntToSql(valueInteger); case long valueInteger: return ConvertIntToSql(valueInteger); case double valueDecimal: return ConvertDecimalToSql(valueDecimal); case float valueDecimal: return ConvertDecimalToSql(valueDecimal); case decimal valueDecimal: return ConvertDecimalToSql((double) valueDecimal); case string valueString: return ConvertStringToSql(valueString); case DateTime valueDate: return ConvertDateToSql(valueDate); case bool valueBool: return ConvertBooleanToSql(valueBool); default: return ConvertStringToSql(parameterDb.Value.ToString()); } }
private static ParameterDTG ParameterDtg(ParameterDb parameterModel) { return(new ParameterDTG() { Name = parameterModel.Name, MetadataName = parameterModel.MetadataName, Type = LoadType(parameterModel.Type) }); }
/// <summary> /// Convierte un parámetro /// </summary> protected override IDataParameter ConvertParameter(ParameterDb parameter) { if (parameter.Direction == ParameterDirection.ReturnValue) { return(new SqlParameter(parameter.Name, SqlDbType.Int)); } if (parameter.Value == null || parameter.Value is DBNull) { return(new SqlParameter(parameter.Name, null)); } if (parameter.IsText) { return(new SqlParameter(parameter.Name, SqlDbType.Text)); } if (parameter.Value is bool?) { return(new SqlParameter(parameter.Name, SqlDbType.Bit)); } if (parameter.Value is int?) { return(new SqlParameter(parameter.Name, SqlDbType.Int)); } if (parameter.Value is long?) { return(new SqlParameter(parameter.Name, DbType.Int64)); } if (parameter.Value is double?) { return(new SqlParameter(parameter.Name, SqlDbType.Float)); } if (parameter.Value is string) { return(new SqlParameter(parameter.Name, SqlDbType.VarChar, parameter.Length)); } if (parameter.Value is byte[]) { return(new SqlParameter(parameter.Name, SqlDbType.Image)); } if (parameter.Value is DateTime?) { return(new SqlParameter(parameter.Name, SqlDbType.DateTime)); } if (parameter.Value is Enum) { return(new SqlParameter(parameter.Name, SqlDbType.Int)); } throw new NotSupportedException($"Tipo del parámetro {parameter.Name} desconocido"); }
/// <summary> /// Convierte un parámetro /// </summary> protected override IDataParameter ConvertParameter(ParameterDb parameter) { // Convierte el parámetro if (parameter.Direction == ParameterDirection.ReturnValue) { return(new NpgsqlParameter(parameter.Name, NpgsqlDbType.Integer)); } if (parameter.Value == null) { return(new NpgsqlParameter(parameter.Name, null)); } if (parameter.IsText) { return(new NpgsqlParameter(parameter.Name, NpgsqlDbType.Varchar)); } if (parameter.Value is bool?) { return(new NpgsqlParameter(parameter.Name, NpgsqlDbType.Boolean)); } if (parameter.Value is int?) { return(new NpgsqlParameter(parameter.Name, NpgsqlDbType.Integer)); } if (parameter.Value is double?) { return(new NpgsqlParameter(parameter.Name, NpgsqlDbType.Double)); } if (parameter.Value is string) { return(new NpgsqlParameter(parameter.Name, NpgsqlDbType.Varchar, parameter.Length)); } if (parameter.Value is byte[]) { return(new NpgsqlParameter(parameter.Name, NpgsqlDbType.Bit)); } if (parameter.Value is DateTime?) { return(new NpgsqlParameter(parameter.Name, NpgsqlDbType.Date)); } if (parameter.Value is Enum) { return(new NpgsqlParameter(parameter.Name, NpgsqlDbType.Integer)); } // Si ha llegado hasta aquí, lanza una excepción throw new NotSupportedException($"Tipo del parámetro {parameter.Name} desconocido"); }
/// <summary> /// Obtiene un parámetro SQLServer a partir de un parámetro genérico /// </summary> protected override IDataParameter ConvertParameter(ParameterDb parameter) { // Crea un parámetro de retorno entero if (parameter.Direction == ParameterDirection.ReturnValue) { return(new OdbcParameter(parameter.Name, OdbcType.Int)); } // Asigna el tipo de parámetro if (parameter.IsText) { return(new OdbcParameter(parameter.Name, OdbcType.VarChar)); } if (parameter.Value is bool) { return(new OdbcParameter(parameter.Name, OdbcType.Bit)); } if (parameter.Value is int) { return(new OdbcParameter(parameter.Name, OdbcType.Int)); } if (parameter.Value is double) { return(new OdbcParameter(parameter.Name, OdbcType.Double)); } if (parameter.Value is string) { return(new OdbcParameter(parameter.Name, OdbcType.VarChar, parameter.Length)); } if (parameter.Value is byte []) { return(new OdbcParameter(parameter.Name, OdbcType.Binary)); } if (parameter.Value is DateTime) { return(new OdbcParameter(parameter.Name, OdbcType.Date)); } if (parameter.Value is Enum) { return(new OdbcParameter(parameter.Name, OdbcType.Int)); } // Devuelve un parámetro genérico return(new OdbcParameter(parameter.Name, parameter.Value)); }
/// <summary> /// Obtiene un parámetro SQLServer a partir de un parámetro genérico /// </summary> protected override IDataParameter ConvertParameter(ParameterDb parameter) { if (parameter.Direction == ParameterDirection.ReturnValue) { return(new OdbcParameter(parameter.Name, OdbcType.Int)); } if (parameter.IsText) { return(new OdbcParameter(parameter.Name, OdbcType.VarChar)); } if (parameter.Value is bool) { return(new OdbcParameter(parameter.Name, OdbcType.Bit)); } if (parameter.Value is int) { return(new OdbcParameter(parameter.Name, OdbcType.Int)); } if (parameter.Value is double) { return(new OdbcParameter(parameter.Name, OdbcType.Double)); } if (parameter.Value is string) { return(new OdbcParameter(parameter.Name, OdbcType.VarChar, parameter.Length)); } if (parameter.Value is byte []) { return(new OdbcParameter(parameter.Name, OdbcType.Binary)); } if (parameter.Value is DateTime) { return(new OdbcParameter(parameter.Name, OdbcType.Date)); } if (parameter.Value is Enum) { return(new OdbcParameter(parameter.Name, OdbcType.Int)); } throw new NotSupportedException($"Tipo del parámetro {parameter.Name} desconocido"); }