jueves, marzo 29, 2012

Establecer un fondo en tiempo de diseño a un formulario Windows en C#

para este ejemplo debemos tener dos formularios, uno se usará como plantilla en donde manipularemos el evento Paint y el otro heredará el diseño del formulario plantilla:

Pero en este ejemplo el efecto visual solo podrá ser apreciado en tiempo de diseño, es decir que cuando ejecutemos la aplicación solo mostrara un formulario normal.

En el evento Paint del del formulario plantilla colocamos el siguiente código:

   private void Form2_Paint(object sender, PaintEventArgs e)
        {
            if (this.DesignMode)
            {
                SolidBrush drawBrush = new SolidBrush(Color.LightSteelBlue);
                Point p = new Point(this.ClientRectangle.Width - 170, this.ClientRectangle.Height - 25);
                
                Pen pen = new Pen(drawBrush,1);
                Size rec = this.Size;
                rec.Width = rec.Width - 28;
                rec.Height = rec.Height - 50;
                Rectangle r = new Rectangle(new Point(5, 5), rec);
                e.Graphics.DrawRectangle(pen, r);

                e.Graphics.DrawString("Milton Baltazar Valenzuela", new Font("Arial", 10), drawBrush, p);
            }
        }


Y en el primer formulario modificamos la parte donde hereda de un control Form por el formulario plantilla


public partial class Form1 : Form2


vemos que cuando heredamos la parte visual del formulario cambia como se muestra en la imagen.



cuando ejecutamos vemos que el diseño se ha perdido porque en el formulario plantilla hemos establecido que solo se aplique en tiempo de diseño con DesignMode.

Crear un sinonimo publico en Oracle

En ocasiones resulta necesario acceder a información de una tabla que se encuentra en otro esquema, para ello  Oracle permite crear nombres públicos a las tablas para que cualquier usuario pueda acceder al contenido de la tabla.

Para poder crear un sinónimo primer debes loguearte con una cuenta sysdba, crear el sinónimo y acceder con otro usuario para verificar que se puede acceder a la tabla.

conn / as sysdba;
create public synonym dept  for scott.dept;
disconnect;

Luego de crear el sinónimo debes loguearte con una cuenta diferente para verificar el acceso a la tabla con la siguiente consulta:


select * from dept;


Ver transacciones pendientes de commit y rollback en Oracle

La vista dba_2pc_pending  guarda las transacciones pendientes de commit y rollback. Para poder ejecutarla debes loguearte con una cuenta de sysdba a la BD Oracle:

select * from dba_2pc_pending;

FM : Quitar espacios de las fechas en ORACLE

La siguiente instrucción obtiene la fecha

SELECT ename, to_char(hiredate,'day DD Month YYYY') AS
hiredate
FROM emp



y la siguiente añade 'fm' dentro del formato:


SELECT ename, to_char(hiredate,   'fmday DD Month YYYY') AS
hiredate
FROM emp





se nota la diferencia?