/*Metodo para guardar las areas*/ public static void GuardarAreas() { //Abrir la Conexion Utilidades cn = new Utilidades(); string sConnectionString = ConfigurationManager.ConnectionStrings["ArchivoCostosConnectionString"].ConnectionString; try { /*copiar en la tabla areas*/ cn.Abrir5(); SqlBulkCopy copia = new SqlBulkCopy(sConnectionString); DataTable TablaCopia = cn.VerTabla5(Consultas.GuardarAreasConsulta(),"Areas"); copia.DestinationTableName = "Areas"; copia.WriteToServer(TablaCopia); cn.Cerrar5(); } catch (Exception ex) { DataDataContext db = new DataDataContext(); db.CommandTimeout = 900000; db.InsertarError(ex.Message.ToString(),DateTime.Now); } }
//guardar parametros public static void GuardarParametros() { //Abrir la Conexion Utilidades cn = new Utilidades(); string sConnectionString = ConfigurationManager.ConnectionStrings["ArchivoCostosConnectionString"].ConnectionString; try { //Guardar la parametrizacion cn.Abrir5(); SqlBulkCopy copia = new SqlBulkCopy(sConnectionString); DataTable TablaCopia = cn.DatosCopiar(Consultas.GuardarParametrizacion()); //Tabla de la parametrizacion copia.DestinationTableName = "Parametrizacion"; //escribir en el servidor copia.WriteToServer(TablaCopia); cn.Cerrar5(); } catch (Exception ex) { DataDataContext db = new DataDataContext(); db.CommandTimeout = 900000; db.InsertarError(ex.Message.ToString(),DateTime.Now); } }
/*Esto es la parte mas importante, pues es la que sincroniza con el servidor trae la informacion y la inserta en sql server por medio de datatables*/ public static void EjecutaOrdenes(string Proyecto, string Filtro, int IdFecha) { string Mensaje = ""; DataDataContext db = new DataDataContext(); db.CommandTimeout = 900000; /*DIA 11-11-2014 3:57 PM COMENTADA ESTA LINEA*/ /* if (db.ValidarSiHayRegistros() >= 1) { Mensaje = "Servidor ocupado, intente nuevamente"; return; } else {*/ string sConnectionString1 = ConfigurationManager.ConnectionStrings["ArchivoCostosConnectionString"].ConnectionString; string sConnectionString2 = ConfigurationManager.ConnectionStrings["ArchivoCostosConnectionString"].ConnectionString; string sConnectionString3 = ConfigurationManager.ConnectionStrings["ArchivoCostosConnectionString"].ConnectionString; string sConnectionString4 = ConfigurationManager.ConnectionStrings["ArchivoCostosConnectionString"].ConnectionString; string sConnectionString5 = ConfigurationManager.ConnectionStrings["ArchivoCostosConnectionString"].ConnectionString; //Abrir la Conexion Utilidades cn = new Utilidades(); //Ejecutar los Comando que Deseemos. // Recordemos que el Metodo Ejecutar no Regresa un Objeto del tipo DataSet que es como una Colecion de Tablas. Y si queremos poner el resultado del comando en una Tabla hariamos lo siguiente: //Antes de Terminar permiten Recomendarles la forma de utilizar la clase Conexion y el Manejo de Excepciones. try { SqlBulkCopy copia = new SqlBulkCopy(sConnectionString1); SqlBulkCopy copia2 = new SqlBulkCopy(sConnectionString2); SqlBulkCopy copia3 = new SqlBulkCopy(sConnectionString3); SqlBulkCopy copia4 = new SqlBulkCopy(sConnectionString4); SqlBulkCopy copia5 = new SqlBulkCopy(sConnectionString5); /*Copia a las tablas ordenes y ordenes temporales*/ cn.Abrir1(); DataTable TablaOrdenes = cn.VerTabla1(Consultas.Ordenes(Proyecto, IdFecha), "OrdenesTemp"); copia.DestinationTableName = "OrdenesTemp"; copia.BulkCopyTimeout = 900000; copia.WriteToServer(TablaOrdenes); copia.DestinationTableName = "Ordenes"; copia.WriteToServer(TablaOrdenes); cn.Cerrar1(); /*Copia a las tablas costoentrado y costoentrado temporales*/ cn.Abrir2(); DataTable TablaConsultas = cn.VerTabla2(Consultas.CostoEntrado(Proyecto, IdFecha), "CostoEntradoTemp"); copia2.DestinationTableName = "CostoEntradoTemp"; copia2.BulkCopyTimeout = 900000; copia2.WriteToServer(TablaConsultas); copia2.DestinationTableName = "CostoEntrado"; copia2.WriteToServer(TablaConsultas); cn.Cerrar2(); /*Copia a las tablas Pedidos y Pedidos temporales*/ cn.Abrir3(); DataTable TablaPedidos = cn.VerTabla3(Consultas.Pedidos(Proyecto, IdFecha), "PedidosTemp"); copia3.DestinationTableName = "PedidosTemp"; copia3.BulkCopyTimeout = 900000; copia3.WriteToServer(TablaPedidos); copia3.DestinationTableName = "Pedidos"; copia3.WriteToServer(TablaPedidos); cn.Cerrar3(); /*Copia a las tablas Salidas y Salidas temporales*/ cn.Abrir4(); DataTable TablaSalidas = cn.VerTabla4(Consultas.Salidas(Proyecto, IdFecha), "SalidasTemp"); copia4.DestinationTableName = "SalidasTemp"; copia4.BulkCopyTimeout = 900000; copia4.WriteToServer(TablaSalidas); copia4.DestinationTableName = "Salidas"; copia4.WriteToServer(TablaSalidas); cn.Cerrar4(); /*Copia a las tablas CostosPptoProgTemp temporales*/ cn.Abrir5(); DataTable TablaCostoPresProg = cn.VerTabla5(Consultas.CostosPresuProg(Proyecto, Filtro, IdFecha), "CostosPptoProgTemp"); copia5.DestinationTableName = "CostosPptoProgTemp"; copia5.BulkCopyTimeout = 900000; copia5.WriteToServer(TablaCostoPresProg); cn.Cerrar5(); //Guarda una copia de la fecha con los campos calculados de las vistas GuardarCopia(IdFecha); //cerrar las conexiones de las tablas TablaOrdenes.Dispose(); TablaConsultas.Dispose(); TablaPedidos.Dispose(); TablaSalidas.Dispose(); TablaCostoPresProg.Dispose(); //metodo para vaciar las tablas temporales db.VaciarTablasTemporales(); //metodos para borrar las areas db.BorrarAreas(); //metodos para guardar las areas Consultas.GuardarAreas(); } catch (Exception ex) // Maneja los Posibles Errores { //Metodo para insertar el error db.InsertarError(ex.Message.ToString(),DateTime.Now); } finally { //metodo para cerrar las conexiones cn.Cerrar1(); cn.Cerrar2(); cn.Cerrar3(); cn.Cerrar4(); cn.Cerrar5(); } }