///******************************************************************************************************* ///NOMBRE_FUNCIÓN: Consultar_Existe_Serie ///DESCRIPCIÓN: Forma y ejecuta una consulta para buscar un acceso por número de serie, regresa /// true en caso de encontrarlo ///PARÁMETROS: /// 1. Serie: cadena de caracteres con el número de serie a consultar ///CREO: Roberto González Oseguera ///FECHA_CREO: 16-oct-2013 ///MODIFICÓ: ///FECHA_MODIFICÓ: ///CAUSA_MODIFICACIÓN: ///******************************************************************************************************* public static bool Consultar_Existe_Serie(string Serie) { String Mi_SQL; DataTable Dt_Consulta = new DataTable(); Boolean Transaccion_Activa = false; Conexion.Iniciar_Helper(); if (!Conexion.HelperGenerico.Estatus_Transaccion()) { Conexion.HelperGenerico.Conexion_y_Apertura(); } else { Transaccion_Activa = true; } try { Conexion.HelperGenerico.Iniciar_Transaccion(); Mi_SQL = "SELECT " + Ope_Accesos.Campo_No_Acceso + ", " + Ope_Accesos.Campo_No_Venta + ", " + Ope_Accesos.Campo_Producto_ID + " FROM " + Ope_Accesos.Tabla_Ope_Accesos + " WHERE " + Ope_Accesos.Campo_Numero_Serie + " = '" + Serie + "'"; Dt_Consulta = Conexion.HelperGenerico.Obtener_Data_Table(Mi_SQL.ToString()); if (!Transaccion_Activa) { Conexion.HelperGenerico.Terminar_Transaccion(); } } catch (Exception E) { Conexion.HelperGenerico.Abortar_Transaccion(); throw new Exception("Alta_Pago: " + E.Message); } finally { if (!Transaccion_Activa) { Conexion.HelperGenerico.Cerrar_Conexion(); } } // si la tabla está vacía, regresar falso if (Dt_Consulta == null || Dt_Consulta.Rows.Count <= 0) { return(false); } else // si la talba contiene resultados, regresar verdadero { return(true); } }
///******************************************************************************* ///NOMBRE DE LA FUNCIÓN : Consultar_Accesos ///DESCRIPCIÓN : Regresa un DataTable con los Registros encontrados. ///PARAMETROS : Accesos: Instancia de Cls_Ope_Accesos_Negocio con los valores de la Consulta a ser ejecutada ///CREO : Antonio Salvador Benavides Guardado ///FECHA_CREO : 03/Octubre/2013 ///MODIFICO : ///FECHA_MODIFICO : ///CAUSA_MODIFICACIÓN : ///******************************************************************************* public static System.Data.DataTable Consultar_Accesos(Cls_Ope_Accesos_Negocio Accesos) { String Mi_SQL; DataTable Dt_Consulta = new DataTable(); Conexion.Iniciar_Helper(); Conexion.HelperGenerico.Conexion_y_Apertura(); Mi_SQL = "SELECT " + Ope_Accesos.Campo_No_Acceso; Mi_SQL += ", " + Ope_Accesos.Campo_No_Venta; Mi_SQL += ", " + Ope_Accesos.Campo_Producto_ID; // subconsulta nombre producto Mi_SQL += ", (SELECT " + Cat_Productos.Campo_Nombre + " FROM " + Cat_Productos.Tabla_Cat_Productos + " WHERE " + Cat_Productos.Campo_Producto_Id + "=" + Ope_Accesos.Tabla_Ope_Accesos + "." + Ope_Accesos.Campo_Producto_ID + ") AS NOMBRE_PRODUCTO"; Mi_SQL += ", " + Ope_Accesos.Campo_Terminal_ID; Mi_SQL += ", " + Ope_Accesos.Campo_Numero_Serie; Mi_SQL += ", " + Ope_Accesos.Campo_Vigencia_Inicio; Mi_SQL += ", " + Ope_Accesos.Campo_Vigencia_Fin; Mi_SQL += ", " + Ope_Accesos.Campo_Estatus; Mi_SQL += ", " + Ope_Accesos.Campo_Fecha_Hora_Acceso; Mi_SQL += ", " + Ope_Accesos.Campo_Fecha_Hora_Salida; Mi_SQL += ", " + Ope_Accesos.Campo_Tipo; Mi_SQL += ", " + Ope_Accesos.Campo_Usuario_Creo; Mi_SQL += ", " + Ope_Accesos.Campo_Fecha_Creo; Mi_SQL += ", " + Ope_Accesos.Campo_Usuario_Modifico; Mi_SQL += ", " + Ope_Accesos.Campo_Fecha_Modifico; Mi_SQL += " FROM " + Ope_Accesos.Tabla_Ope_Accesos; Mi_SQL += " WHERE "; if (Accesos.P_No_Acceso != "" && Accesos.P_No_Acceso != null) { Mi_SQL += Ope_Accesos.Campo_No_Acceso + " = '" + Accesos.P_No_Acceso + "' AND "; } if (!string.IsNullOrEmpty(Accesos.P_Numero_Serie)) { Mi_SQL += Ope_Accesos.Campo_Numero_Serie + " = '" + Accesos.P_Numero_Serie + "' AND "; } if (!string.IsNullOrEmpty(Accesos.P_Estatus)) { Mi_SQL += Ope_Accesos.Campo_Estatus + " = '" + Accesos.P_Estatus + "' AND "; } if (Accesos.P_No_Venta != "" && Accesos.P_No_Venta != null) { Mi_SQL += Ope_Accesos.Campo_No_Venta + " = '" + Accesos.P_No_Venta + "' AND "; } if (Accesos.P_Producto_ID != "" && Accesos.P_Producto_ID != null) { Mi_SQL += Ope_Accesos.Campo_Producto_ID + " = '" + Accesos.P_Producto_ID + "' AND "; } if (Accesos.P_Terminal_ID != "" && Accesos.P_Terminal_ID != null) { Mi_SQL += Ope_Accesos.Campo_Terminal_ID + " = '" + Accesos.P_Terminal_ID + "' AND "; } if (Mi_SQL.EndsWith(" WHERE ")) { Mi_SQL = Mi_SQL.Substring(0, Mi_SQL.Length - 7); } if (Mi_SQL.EndsWith(" AND ")) { Mi_SQL = Mi_SQL.Substring(0, Mi_SQL.Length - 5); } Dt_Consulta = Conexion.HelperGenerico.Obtener_Data_Table(Mi_SQL.ToString()); Conexion.HelperGenerico.Cerrar_Conexion(); return(Dt_Consulta); }
///******************************************************************************************************* /// <summary> /// Forma y ejecuta consultas que crean triggers en la base de datos para guardar el log /// </summary> /// <param name="Tabla">Nombre de la tabla en la que se quiere quitar el log de eventos</param> /// <returns>TRUE en caso de operación exitosa</returns> /// <creo>Roberto González Oseguera</creo> /// <fecha_creo>22-may-2014</fecha_creo> /// <modifico></modifico> /// <fecha_modifico></fecha_modifico> /// <causa_modificacion></causa_modificacion> ///******************************************************************************************************* public static bool Crear_Servicio(string Tabla) { string Mi_SQL; StringBuilder Campos = new StringBuilder(); StringBuilder Nuevos_Campos = new StringBuilder(); StringBuilder Campos_Viejos = new StringBuilder(); StringBuilder Campos_Validados = new StringBuilder(); string campo; Boolean Transaccion_Activa = false; Conexion.Iniciar_Helper(); if (!Conexion.HelperGenerico.Estatus_Transaccion()) { Conexion.HelperGenerico.Conexion_y_Apertura(); } else { Transaccion_Activa = true; } try { Conexion.HelperGenerico.Iniciar_Transaccion(); // consulta para obtener los nombre de los campos en la tabla Mi_SQL = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '" + Cls_Constantes.Nombre_Base_Datos + "' AND TABLE_NAME = '" + Tabla + "'"; DataTable Informacion_Tabla = Conexion.HelperGenerico.Obtener_Data_Table(Mi_SQL.ToString()); int Cont_Llave_Primario = 0; foreach (DataRow Fila in Informacion_Tabla.Rows) { campo = Fila[0].ToString(); Campos.Append(campo + ","); Nuevos_Campos.Append("NEW." + campo + ","); Campos_Viejos.Append("OLD." + campo + ","); // se agrega una validación para comparar el valor anterior y nuevo de cada campo // de manera que solamente se inserten los valores que cambiaron // si el valor nuevo es nulo o vacío, insertar un un valor especial if (Cont_Llave_Primario == 0) { Campos_Validados.Append("OLD." + campo + ","); Cont_Llave_Primario++; } else { Campos_Validados.Append(" IF (OLD." + campo + " != NEW." + campo + " || (OLD." + campo + " <=> NEW." + campo + ") = 0, IF(NEW." + campo + " IS NOT NULL && NEW." + campo + " <> '', NEW." + campo + ", '<>'), NULL),"); } } // generar las consultas para los triggers string Mi_SQL_Ins = "DROP TRIGGER IF EXISTS btc_" + Tabla + "_tgr_aftins;" + " CREATE TRIGGER btc_" + Tabla + "_tgr_aftins AFTER INSERT ON " + Tabla + " FOR EACH ROW BEGIN INSERT INTO btc_" + Tabla + "(" + Campos.ToString() + " Operacion, btc_usuario) VALUES (" + Nuevos_Campos.ToString() + " 'ALTA', USER()); END"; string Mi_SQL_Upd = "DROP TRIGGER IF EXISTS btc_" + Tabla + "_tgr_aftupd;" + " CREATE TRIGGER btc_" + Tabla + "_tgr_aftupd AFTER UPDATE ON " + Tabla + " FOR EACH ROW BEGIN" + " INSERT INTO btc_" + Tabla + "(" + Campos.ToString() + " Operacion, btc_usuario) VALUES (" + Campos_Validados.ToString() + " 'MODIFICADO', USER()); END"; string Mi_SQL_Del = "DROP TRIGGER IF EXISTS btc_" + Tabla + "_tgr_aftdel;" + " CREATE TRIGGER btc_" + Tabla + "_tgr_aftdel AFTER DELETE ON " + Tabla + " FOR EACH ROW BEGIN" + " INSERT INTO btc_" + Tabla + "(" + Campos.ToString() + " Operacion, btc_usuario) VALUES (" + Campos_Viejos.ToString() + " 'ELIMINADO', USER()); END"; Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL_Ins.ToString()); Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL_Upd.ToString()); Conexion.HelperGenerico.Ejecutar_NonQuery(Mi_SQL_Del.ToString()); if (!Transaccion_Activa) { Conexion.HelperGenerico.Terminar_Transaccion(); } } catch (Exception E) { Conexion.HelperGenerico.Abortar_Transaccion(); throw new Exception("Crear_Servicio: " + E.Message); } finally { if (!Transaccion_Activa) { Conexion.HelperGenerico.Cerrar_Conexion(); } } return(true); }