private static void UpdateDim(string empresa, CatCliente cat, DimClientes dim, NpgsqlConnection conn) { NpgsqlCommand cmd; string sqlString = "UPDATE dim_clientes " + "SET codigo_cliente=@codigo, " + "nombre_cliente=@nombre, " + "es_local=@local, " + "empresa=@empresa " + "WHERE id_cliente=@id;"; cmd = new NpgsqlCommand(sqlString, conn); cmd.Parameters.Add("@codigo", NpgsqlTypes.NpgsqlDbType.Varchar, 11); cmd.Parameters.Add("@nombre", NpgsqlTypes.NpgsqlDbType.Varchar, 250); cmd.Parameters.Add("@local", NpgsqlTypes.NpgsqlDbType.Boolean); cmd.Parameters.Add("@empresa", NpgsqlTypes.NpgsqlDbType.Varchar, 150); cmd.Parameters.Add("@id", NpgsqlTypes.NpgsqlDbType.Integer); cmd.Parameters["@codigo"].Value = cat.CodigoCliente; cmd.Parameters["@nombre"].Value = cat.RazonSocial; cmd.Parameters["@local"].Value = cat.EsLocal; cmd.Parameters["@empresa"].Value = dim.Empresa; cmd.Parameters["@id"].Value = dim.IdCliente; cmd.ExecuteNonQuery(); }
public static DimClientes GetCliente(int idEmpresa, string codigoCliente, NpgsqlConnection conn) { DimClientes result = null; bool didOpenConnection = false; NpgsqlDataReader dr; NpgsqlCommand cmd; string sqlString = "SELECT id_cliente, codigo_cliente, nombre_cliente, es_local, empresa, id_empresa " + "FROM dim_clientes " + "WHERE codigo_cliente=@cliente " + "AND id_empresa=@idEmpresa;"; if (conn == null || !(conn.State == ConnectionState.Open)) { string connectionString = ConfigurationManager.ConnectionStrings[Config.Common.JASPER].ConnectionString; conn = new NpgsqlConnection(connectionString); conn.Open(); didOpenConnection = true; } cmd = new NpgsqlCommand(sqlString, conn); cmd.Parameters.Add("@cliente", NpgsqlTypes.NpgsqlDbType.Varchar, 11); cmd.Parameters.Add("@idEmpresa", NpgsqlTypes.NpgsqlDbType.Integer); cmd.Parameters["@cliente"].Value = codigoCliente; cmd.Parameters["@idEmpresa"].Value = idEmpresa; dr = cmd.ExecuteReader(); if (dr.Read()) { result = new DimClientes(); result.IdCliente = int.Parse(dr["id_cliente"].ToString()); result.RazonSocial = dr["nombre_cliente"].ToString(); result.EsLocal = bool.Parse(dr["es_local"].ToString()); result.Empresa = dr["empresa"].ToString(); result.CodigoCliente = codigoCliente; result.IdEmpresa = idEmpresa; } dr.Close(); if (didOpenConnection) { conn.Close(); } return(result); }
internal static void Execute(int idEmpresa, string empresa, List <CatCliente> clientes, NpgsqlConnection conn) { foreach (CatCliente client in clientes) { DimClientes dClient = DimClientes.GetCliente(idEmpresa, client.CodigoCliente, conn); bool loaded = dClient != null; if (loaded) { UpdateDim(empresa, client, dClient, conn); } else { LoadDim(empresa, idEmpresa, client, conn); } } }