///******************************************************************************* ///NOMBRE DE LA FUNCIÓN: MasterObject ///DESCRIPCIÓN: ///PARAMETROS: ///CREO: CHANTAL ORIGEL ///FECHA_CREO: ///MODIFICO: ///FECHA_MODIFICO: ///CAUSA_MODIFICACIÓN: ///******************************************************************************* public Boolean MasterObject(TablaDB Objeto, MODO_DE_CAPTURA Obj_Captura, params FiltroBD[] filtros) { Boolean Transaccion = false; SqlTransaction Obj_Transaccion = null; SqlConnection Obj_Conexion = new SqlConnection(ConexionBD.BD); SqlCommand Obj_Comando = new SqlCommand(); try { String Mi_SQL = QuerySQL.GeneraCMDExec(Objeto, Obj_Captura, filtros); Obj_Conexion.Open(); Obj_Transaccion = Obj_Conexion.BeginTransaction(); Obj_Comando.Transaction = Obj_Transaccion; Obj_Comando.Connection = Obj_Conexion; Obj_Comando.CommandText = Mi_SQL; Obj_Comando.ExecuteNonQuery(); Obj_Transaccion.Commit(); Transaccion = true; } catch (Exception ex) { Transaccion = false; Obj_Transaccion.Rollback(); throw new Exception(ex.Message); } finally { Obj_Conexion.Close(); } return(Transaccion); }
///******************************************************************************* /// NOMBRE DE LA CLASE: InsertaActualiza /// DESCRIPCIÓN: METODO QUE INSERTA/ACTUALIZA/ELIMINA /// PARÁMETROS : /// CREO : CHANTAL ORIGEL /// FECHA_CREO : /// MODIFICO : /// FECHA_MODIFICO : /// CAUSA_MODIFICACIÓN: ///******************************************************************************* public Boolean MasterRegistro(TablaDB Elemento, MODO_DE_CAPTURA Captura, params FiltroBD[] filtros) { try { //Variable de resultado. Boolean resultado = false; //Retornamos el resultado. resultado = Obj_OPSQL.MasterObject(Elemento, Captura, filtros); //Retornamos el resultado. return(resultado); } catch (Exception exDB) { //Cachamos la excepcion de tipo ejecucion de comandos y vemos que acciones tomar throw new Exception(exDB.Message); } }
///******************************************************************************* ///NOMBRE DE LA FUNCIÓN: GeneraCMDExec ///DESCRIPCIÓN: Método que sirve para generar un comando SQL en base a la tabla que se indique. ///PARAMETROS: objetoTabla:Implementacion de la interfaz de objeto tabla de la cual se desea generar el comando. /// modoDeCaptura: Modo de captura en el cual se desea generar el comando. ///CREO: CHANTAL ORIGEL ///FECHA_CREO: ///MODIFICO: ///FECHA_MODIFICO: ///CAUSA_MODIFICACIÓN: ///******************************************************************************* public static String GeneraCMDExec(TablaDB Tabla, MODO_DE_CAPTURA Captura, params FiltroBD[] filtros) { String Query = String.Empty; String Campo_Añadir = String.Empty; String Campo_Valor = String.Empty; String Campo_Llave = String.Empty; //Obtenemos los parametros. List <ParametroBD> parametrosBD = Tabla.ObtenParametros(); //variable para comparar con la cantidad de filtros que nos ayudara asignar el operador condicional //Vaidamos el modo de captura. //QUERY SECUNDARIO if (filtros.Count() > 0) { foreach (FiltroBD filtro in filtros) { foreach (TablaDB tabla in filtro.Tabla) { Campo_Añadir = String.Empty; Campo_Valor = String.Empty; Campo_Llave = String.Empty; Query += "\n"; parametrosBD = tabla.ObtenParametros(); //variable para comparar con la cantidad de filtros que nos ayudara asignar el operador condicional //Vaidamos el modo de captura. switch (filtro.Captura) { case MODO_DE_CAPTURA.CAPTURA_ALTA: //Creamos la linea base. Query += "INSERT INTO " + tabla.NombreTabla; //Generamos el comando. foreach (ParametroBD parametro in parametrosBD) { Campo_Añadir += parametro.CampoBD + ","; Campo_Valor += TipoDeDatoBD(parametro.ValorBD) + ","; } // añadimos los valores a la consulta Query += "(" + Campo_Añadir.Remove(Campo_Añadir.Length - 1) + ") VALUES (" + Campo_Valor.Remove(Campo_Valor.Length - 1) + ")"; break; case MODO_DE_CAPTURA.CAPTURA_ACTUALIZA: //Creamos la linea base. Query += "UPDATE " + tabla.NombreTabla + " SET "; //Generamos el comando. foreach (ParametroBD parametro in parametrosBD) { if (parametro.CampoBD != tabla.IDTabla) { Campo_Valor = TipoDeDatoBD(parametro.ValorBD).ToString(); Campo_Añadir += parametro.CampoBD + " = " + Campo_Valor + ","; } else { Campo_Llave = TipoDeDatoBD(parametro.ValorBD).ToString(); } } // añadimos los valores a la consulta Query += Campo_Añadir.Remove(Campo_Añadir.Length - 1) + " WHERE " + tabla.IDTabla + " = " + Campo_Llave; break; case MODO_DE_CAPTURA.CAPTURA_ELIMINAR: Query += "DELETE FROM " + tabla.NombreTabla + " WHERE " + tabla.IDTabla + " = " + TipoDeDatoBD(ObtenValorDeParametro(parametrosBD, tabla.IDTabla)); break; } } } } else { switch (Captura) { case MODO_DE_CAPTURA.CAPTURA_ALTA: //Creamos la linea base. Query = "INSERT INTO " + Tabla.NombreTabla; //Generamos el comando. foreach (ParametroBD parametro in parametrosBD) { if (parametro.ValorBD != null) { Campo_Añadir += parametro.CampoBD + ","; Campo_Valor += TipoDeDatoBD(parametro.ValorBD) + ","; } } // añadimos los valores a la consulta Query += "(" + Campo_Añadir.Remove(Campo_Añadir.Length - 1) + ") VALUES (" + Campo_Valor.Remove(Campo_Valor.Length - 1) + ")"; break; case MODO_DE_CAPTURA.CAPTURA_ACTUALIZA: //Creamos la linea base. Query = "UPDATE " + Tabla.NombreTabla + " SET "; //Generamos el comando. foreach (ParametroBD parametro in parametrosBD) { if (parametro.CampoBD != Tabla.IDTabla) { if (parametro.ValorBD != null) { Campo_Valor = TipoDeDatoBD(parametro.ValorBD).ToString(); Campo_Añadir += parametro.CampoBD + " = " + Campo_Valor + ","; } } else { Campo_Llave = TipoDeDatoBD(parametro.ValorBD).ToString(); } } // añadimos los valores a la consulta Query += Campo_Añadir.Remove(Campo_Añadir.Length - 1) + " WHERE " + Tabla.IDTabla + " = " + Campo_Llave; break; case MODO_DE_CAPTURA.CAPTURA_ELIMINAR: //Creamos la linea base. Delete from Cat_Clientes where Cliente_ID=1 Query = "DELETE from " + Tabla.NombreTabla; //Generamos el comando. foreach (ParametroBD parametro in parametrosBD) { if (parametro.CampoBD != Tabla.IDTabla) { } else { Campo_Llave = TipoDeDatoBD(parametro.ValorBD).ToString(); } } // añadimos los valores a la consulta Query += " WHERE " + Tabla.IDTabla + " = " + Campo_Llave; break; } } //Retornamos el comando. return(Query); }
/// <summary> /// Inicializa una nueva instancia del parámetro con los valores proporcionados. /// </summary> public FiltroBD(List <TablaDB> Tabla = null, MODO_DE_CAPTURA Captura = MODO_DE_CAPTURA.CAPTURA_ALTA) { this.Tabla = Tabla; this.Captura = Captura; }