private DbCommand cambiarModo(Modo modoEjecucion) { this.modoActual = modoEjecucion; if (modoActual.Equals(Modo.DATABASE)) { CLICK_ERROR = CLICK_ERROR_DATABASE; CLICK_OK = CLICK_OK_DATABASE; DESCRIPCION = DESCRIPCION_DATABASE; Comun.RellenarComboBasesDatos(conexionActual, cmbDatos); return(Comando.DropDatabase(conexionActual, false)); } else if (modoActual.Equals(Modo.TABLE)) { CLICK_ERROR = CLICK_ERROR_TABLE; CLICK_OK = CLICK_OK_TABLE; DESCRIPCION = DESCRIPCION_TABLE; Comun.RellenarComboTablas(conexionActual, cmbDatos); return(Comando.DropTable(conexionActual)); } return(null); }
public void Update() { if (timer.tiempo <= 0) { modo = Modo.Hide; } if (timer.tiempo == 5) { modo = Modo.Show; } if (modo.Equals(Modo.Hide)) { if (transparencia <= 0) { modo = Modo.Nothing; } else { transparencia -= Time.deltaTime; sprite.color = new Color(sprite.color.r, sprite.color.g, sprite.color.b, transparencia); } } if (modo.Equals(Modo.Show)) { if (transparencia >= 1) { modo = Modo.Nothing; } else { transparencia += Time.deltaTime * 8; sprite.color = new Color(sprite.color.r, sprite.color.g, sprite.color.b, transparencia); } } }
private void btn_Click(object sender, RoutedEventArgs e) { if (!Comun.ElegidaTablaDefecto(cmbDatos) && !Comun.ElegidaBaseDatosDefecto(cmbDatos)) { comandoEnviar.CommandText = GenerarComandoEnvio(false); int resultado = Operacion.ExecuteNonQuery(conexionActual, comandoEnviar); // Bien if (resultado != Operacion.ERROR) { Msj.Info(CLICK_OK + "\"" + cmbDatos.SelectedItem + "\"" + " eliminada con con éxito."); } // Si la base de datos no se ha podido borrar por conexión abierta, preguntar forzado if (modoActual.Equals(Modo.DATABASE) && resultado == Operacion.ERROR) { MessageBoxResult opcionElegir = MessageBox.Show("Error al eliminar la base de datos.\r\n" + "¿Desea forzar el borrado?", "Alerta", MessageBoxButton.YesNo, MessageBoxImage.Warning); if (opcionElegir.Equals(MessageBoxResult.Yes)) { comandoEnviar.CommandText = GenerarComandoEnvio(true); resultado = Operacion.ExecuteNonQuery(conexionActual, comandoEnviar); // Bien if (resultado == -1) { Msj.Info(CLICK_OK + "\"" + cmbDatos.SelectedItem + "\"" + " eliminada con con éxito."); } } } } else { Msj.Error(CLICK_ERROR); } }
/// <summary>Accept() /// Permite realizar las acciones de inserccion y de edicion; cuando se presiona el boton aceptar. /// </summary> public void Accept() { if (Validar()) { try { if (Modo.Equals("N")) { string code = TxtCod.Text; string camp = String.Format("SELECT {0} FROM {1} WHERE delmrk = 1 AND {2} = '{3}'", PerfilAct.CampoCodigo, PerfilAct.Tabla, PerfilAct.CampoCodigo, code); DataSet ds = DataBase.ExecuteQuery(camp, "datos", CommandType.Text, null, ConexionDB.getInstancia().Conexion(Database, null)); if (ds.Tables[0].Rows.Count <= 0) { String sql = String.Format("INSERT INTO {0} ({1},{2}) VALUES ('{3}','{4}')", PerfilAct.Tabla, PerfilAct.CampoCodigo, PerfilAct.CampoNombre, code, TxtNombre.Text); bool IsDone = DataBase.ExecuteNonQuery(sql, CommandType.Text, null, ConexionDB.getInstancia().Conexion(Database, null)); if (IsDone) { string cons = String.Format("SELECT {0} FROM {1} WHERE delmrk = 1 AND {2} = '{3}'", PerfilAct.Llave, PerfilAct.Tabla, PerfilAct.CampoCodigo, code); DataSet dsCons = DataBase.ExecuteQuery(cons, "datos", CommandType.Text, null, ConexionDB.getInstancia().Conexion(Database, null)); ID = dsCons.Tables[0].Rows[0][PerfilAct.Llave].ToString(); //AlertInfo info = new AlertInfo(Resources.SystemMessage, String.Format(Resources.SaveSuccess, TxtNombre.Text), Resources.Check); //alertControl1.Show(this, info); this.TxtCod.Text = String.Empty; this.TxtNombre.Text = String.Empty; this.TxtCod.Focus(); if (!DesdeMenu) { DialogResult = DialogResult.OK; } else { LimpiarForm(); agrego = true; } } } else { XtraMessageBox.Show("Ya existe un registro con ese Código", GLReferences.Properties.Resources.AppName, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2); TxtCod.Focus(); } } else { String sql = String.Format("UPDATE {0} SET {1} = '{2}', {3} = '{4}' WHERE {5} = '{6}'", PerfilAct.Tabla, PerfilAct.CampoCodigo, TxtCod.Text, PerfilAct.CampoNombre, TxtNombre.Text, PerfilAct.Llave, ID); bool IsDone = DataBase.ExecuteNonQuery(sql, CommandType.Text, null, ConexionDB.getInstancia().Conexion(Database, null)); if (IsDone) { // AlertInfo info = new AlertInfo(Resources.SystemMessage, String.Format(Resources.SaveSuccess, TxtNombre.Text), Resources.Check); // alertControl1.Show(this, info); this.TxtNombre.Text = String.Empty; this.TxtNombre.Focus(); DialogResult = DialogResult.OK; } } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, Resources.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button2); return; } } }
public static double OpMulti(Modo _modo) { dValorPow1 = 0; dValorPow2 = 0; cont = 0; temporizador = Stopwatch.StartNew(); /* * Se utiliza la versión del ciclo (FOR) en modo paralelo. * Observemos como se presentan inconvenientes en el resultado, debido * a la posibilidad de que múltiples instancias o subprocesos * accedan al cuerpo del método. */ if (_modo.Equals(Modo.ParallelFor)) { Parallel.For(0, lim, cont => { dValorPow1 += Convert.ToInt64(Math.Pow(cont, 2)); //cont += 1; }); Console.WriteLine("Parallel.For"); } /* * Para evitar los inconvenientes ocasionados por la concurrencia * al utilizar variables compartidas, se utiliza una instrucción que * indica que ciertas instrucciones deben ejecutarse en exclusión mutua. * * En este caso se utiliza un lock(). Si bien se soluciona el problema, * se afecta el rendimiento o las ventajas del multiprocesamiento */ else if (_modo.Equals(Modo.ParallelFor_ExclusionMutua)) { object sync = new object(); Parallel.For(0, lim, cont => { /* * Dentro del lock, las intrucciones únicamente pueden ser ejecutadas por * un proceso o instancia a la vez */ lock (sync) { dValorPow1 += Convert.ToInt64(Math.Pow(cont, 2)); } }); Console.WriteLine("Parallel.For con exclusión mútua (LOCK)"); } /* * Se introducen condiciones sobre la ejecución multicore de manera * que limita el número de procesos a la cantidad de CPU´s * detectados (físicos y lógicos) */ else if (_modo.Equals(Modo.ParallelFor_LimitadoPorCores)) { int degreeOfParallelism = Environment.ProcessorCount; object sync = new object(); Parallel.For(0, degreeOfParallelism, workerId => { var max = lim * (workerId + 1) / degreeOfParallelism; for (int i = (int)lim * workerId / degreeOfParallelism; i < max; i++) { lock (sync) { dValorPow1 += Convert.ToInt64(Math.Pow(i, 2)); } } }); Console.WriteLine("Parallel.For limitado por los (" + degreeOfParallelism + ") procesadores detectados"); } /* * Se utiliza el método Parallel.Invoke, que permite * ejecutar en paralelo (en la medida de lo posible) las acciones * que se le suministran. * * En este caso, se divide en dos las iteraciones, de manera * que se emplean dos ciclos para realizar los cálculos en forma simultánea */ else if (_modo.Equals(Modo.ParallelInvoke)) { Parallel.Invoke(() => { for (double cont = 0; cont < (lim / 2); cont++) { dValorPow1 += Convert.ToInt64(Math.Pow(cont, 2)); } } , () => { for (double cont = (lim / 2); cont < lim; cont++) { dValorPow2 += Convert.ToInt64(Math.Pow(cont, 2)); } }); Console.WriteLine("Parallel.Invoke()"); } /* * Se utiliza el mecanismo de "hilos locales a nivel de datos" o "thread-local data", * de manera que se realizan los cálculos sin necesidad de acceder direactamente al recurso compartido. * * Se ejecutan las tareas en hilos-locales y se actualiza el resultado una vez que las * iteraciones de la tarea se han completado. */ else if (_modo.Equals(Modo.ParallelForEach_ThreadLocalData)) { object sync = new object(); Parallel.ForEach(Enumerable.Range(0, Convert.ToInt32(lim)), () => 0L, (value, pls, localTotal) => { return(localTotal += Convert.ToInt64(Math.Pow(value, 2))); }, localTotal => { lock (sync) { dValorPow1 += localTotal; } }); Console.WriteLine("Parallel.ForEach with thread-local data"); } Console.WriteLine("Tiempo de ejecución - modalidad concurrente: " + temporizador.ElapsedMilliseconds + " milisegundos"); Console.WriteLine("Resultado = " + (dValorPow1 + dValorPow2)); return(dValorPow1 + dValorPow2); }
/// <summary> /// Método que se ejecuta al presionar el botón Aceptar /// Inserta el registro en la tabla cuando la propiedad Modo tiene un valor "N", en caso contrario lo actualiza /// </summary> public void Accept() { try { if (!String.IsNullOrEmpty(TxtNombre.Text)) { if (Modo.Equals("N")) { string code = Funciones.getInstancia().GetNextCode(PerfilAct.Tabla, PerfilAct.Llave, ConexionDB.getInstancia().Conexion(Database, null), PerfilAct.CampoCodigo); string camp = ""; //camp = camp.Vector2Cadena(",", PerfilAct.Campos); camp = PerfilAct.CampoCodigo + "," + PerfilAct.CampoNombre; var sql = string.Format("INSERT INTO {0} ({1}) VALUES ({2})", PerfilAct.Tabla, camp, String.Format("'{0}', '{1}'", code, TxtNombre.Text)); var IsDone = DataBase.ExecuteNonQuery(sql, CommandType.Text, null, ConexionDB.getInstancia().Conexion(Database, null)); if (IsDone) { string cons = String.Format("SELECT {0} FROM {1} WHERE delmrk = 1 AND {2} = '{3}'", PerfilAct.Llave, PerfilAct.Tabla, PerfilAct.CampoCodigo, code); DataSet ds = DataBase.ExecuteQuery(cons, "datos", CommandType.Text, null, ConexionDB.getInstancia().Conexion(Database, null)); ID = ds.Tables[0].Rows[0][PerfilAct.Llave].ToString(); //AlertInfo info = new AlertInfo(Resources.SystemMessage, String.Format(Resources.SaveSuccess, TxtNombre.Text), Resources.Check); //alertControl1.Show(this, info); this.TxtNombre.Text = String.Empty; this.TxtNombre.Focus(); if (!DesdeMenu) { DialogResult = DialogResult.OK; } else { agrego = true; this.TxtNombre.Text = String.Empty; } } } else { String sql = String.Format("UPDATE {0} SET {1} = '{2}' WHERE {3} = '{4}'", PerfilAct.Tabla, PerfilAct.CampoNombre, TxtNombre.Text, PerfilAct.Llave, ID); bool IsDone = DataBase.ExecuteNonQuery(sql, CommandType.Text, null, ConexionDB.getInstancia().Conexion(Database, null)); if (IsDone) { //AlertInfo info = new AlertInfo(Resources.SystemMessage, String.Format(Resources.SaveSuccess, TxtNombre.Text), Resources.Check); //alertControl1.Show(this, info); this.TxtNombre.Text = String.Empty; this.TxtNombre.Focus(); DialogResult = DialogResult.OK; } } } else { XtraMessageBox.Show("El nombre no puede quedar vacío", GLReferences.Properties.Resources.AppName, MessageBoxButtons.OK, MessageBoxIcon.Information); TxtNombre.Focus(); } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, Resources.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button2); return; } }
//Carga de datos del documento private void CargarDatos() { // Encabezado string campos = " dh.Resolucion, dh.Documento, dh.Serie, dh.DocNo, dh.ReferenciaDoc, dh.Fecha, dh.Empresa, "; campos += " dh.Sucursal, dh.Caja, dh.Usuario, dh.Divisa, bg.Name Moneda, dh.TasaCambio, dh.TipoGeneracion, "; campos += " dh.NombreCliente, dh.DireccionCliente, dh.NITCliente, dh.ValorNeto, dh.IVA, dh.Descuento, "; campos += " dh.Exento, dh.Total, dh.Estado, dh.Observacion, dh.Estado, dh.Parametros "; string[] join = { "left join Badge bg on dh.Divisa = bg.BadgeID " }; string whr = "dh.Resolucion = '" + this.Resolucion + "' and dh.Documento = '" + this.TipoDoc + "' "; whr += " and dh.Serie = '" + this.SerieDoc + "' and dh.DocNo = '" + this.NoDocumento + "' "; whr += " and TrxVoided = 0 "; DocHeader = con.obtenerDatos("documentheader dh", campos, join, whr); // Detalle campos = "Resolucion, Documento, Serie, DocNo, Linea, Codigo, Descripcion, Tipo, Metrica, "; campos += "Cantidad, PrecioUnitario, Importe, IVA, Total, Exento"; whr = "Resolucion = '" + this.Resolucion + "' and Documento = '" + this.TipoDoc + "' "; whr += " and Serie = '" + this.SerieDoc + "' and DocNo = '" + this.NoDocumento + "' "; DocDetail = con.obtenerDatos("documentdetail", campos, whr); // Datos Proveedor campos = " cd.Resolucion, cd.Fecha, cd.Documento, cd.Serie, cd.Ultimo, cd.Liquidado, "; campos += " df.FormatName, sp.Name Proveedor, sp.ClassName, sp.ProviderAuth, sp.ServiceURL "; join = new string[] { "left join serviceprovider sp on cd.ProviderID = sp.ProviderID", "left join docformat df on cd.Formato = df.FormatID", }; whr = " cd.Documento = '" + this.TipoDoc + "' and cd.Resolucion = '" + this.Resolucion + "' "; whr += " and cd.Serie = '" + this.SerieDoc + "' "; DocProvider = con.obtenerDatos("corrdocument cd", campos, join, whr); //Validacion de Documento encontrado if (DocHeader.Rows.Count.Equals(0) || DocDetail.Rows.Count.Equals(0)) { throw new Exception("No se encontró el documento"); } else if (DocHeader.Rows.Count > 0) { //Verificacion del modo registro if (Funcion.Equals(Modo.Registro)) { //Verificacion de estado de documento if (utl.convertirInt(DocHeader.Rows[0]["Estado"]).Equals(1)) { throw new Exception("Documento se encuentra registrado"); } else if (utl.convertirInt(DocHeader.Rows[0]["Estado"]).Equals(2)) { throw new Exception("Documento se encuentra anulado"); } } } //Validacion de Resolucion de proceedor encontrada if (DocProvider.Rows.Count.Equals(0)) { throw new Exception("No se encontró resolución de documento"); } else if (DocProvider.Rows.Count > 0) { //Verificacion del modo registro if (Funcion.Equals(Modo.Registro)) { //Validacion de resolucion de proveedor aun vigente if (utl.convertirInt(DocProvider.Rows[0]["Liquidado"]).Equals(1)) { throw new Exception("Resolución de documento está liquidado"); } } } }