martes, 28 de septiembre de 2010

Restringir el valor de una columna como única

La mayor parte de las veces que se crea una tabla en la base de datos, se crea con id y una clave, sin embargo esa clave no se debería de repetir, lo más fácil sería crear esa clave como llave primaria sin embargo para darle mantenimiento y trabajar con ella es un poco más talachuda, pues bien existen dos formas de decirle a la base de datos que no queremos que esa clave se repita, la primera y para mi la más fácil sería mediante el siguiente código:

ALTER TABLE nombre_tabla

ADD CONSTRAINT nombre_restriccion --támbien conocida como constraint

UNIQUE(nombre_columna)


O la segunda forma es mediante el Management Studio

   1. Abrir el Management Studio
   2. Abrir el Modificar de la tabla
   3. Click derecho en la columna donde dice Indexes/Keys.
   4. Agregar una restricción
   5. Seleccionar el campo de la tabla y el valor Unico



Bueno espero y les sirva sino aquí dejo un manual Integridad de Datos

Contar registros Duplicados

Cuando queremos registros NO duplicados se puede utilizar la clausula SELECT DISTINCT, pero que
pasa cuando necesitamos conocer Aquellos registros que se duplican.

SELECT Nombre_Columna,COUNT(Nombre_Columna) FROM Nombre_Tabla
GROUP BY Nombre_Columna HAVING COUNT(Nombre_Columna)>1

 Y ahora si quiero conocer los ids de los registros duplicados aplicaría la siguiente consulta

 SELECT Id_Columna, Nombre_Columna FROM Nombre_Tabla
WHERE Nombre_Columna IN

(SELECT Nombre_Columna FROM Nombre_Tabla
GROUP BY Nombre_Columna HAVING COUNT(Nombre_Columna)>1)

lunes, 27 de septiembre de 2010

Cambiar el lenguaje de los mensajes de error de la base de datos MYSQL

Muchas veces queremos mostrar el error por ejemplo al insertar o actualizar una clave que ya existe
Entrada duplicada '0001' para la clave 'cve_articulo',  
sin embargo la base de datos por default viene configurada en idioma ingles, 
bueno pues para cambiar la configuración hay que irse al directorio
de instalación c:\archivos de programa\mysql o en caso de usar XAMPP el 
directorio de instalación c:\ xammp\mysql\bin, solo hay que localizar el archivo 
my.ini, ahora en la sección [mysqld]  agregar la siguiente línea
language="spanish" 
Ahora la base de datos mostrará los errores en español 

martes, 14 de septiembre de 2010

Data Mapper DMZ

Hace unos dias comence a trabajar con codeigniter, generalmente he trabajado con stored procedures del lado de la de la bd en este caso MYSQL, sin embargo me surgió la tentación de trabajar con alguna librería o Framework ORM,lo primero que hice fue ver propel y doctrine, me gusto mas propel, sin embargo para consultas un poco mas complejas segun leí doctrine era mejor, debido a la cantidad de versiones que rondan en la red vi dificil la instalacion hasta que encontre Data Mapper wooooooooo, todo parecía perfecto hasta que llegue a la conversión a json ahi tendría que hacer una función, pero me encontre con una version mejorada Data Mapper OverZealous Edition, parecia el ORM de en sueño, menos codigo, convertia a json, hasta que trate de ejecutar un vil delete en el modo query $objeto->query($sql) como el update no regresa registros me marcaba un error, bueno pues tuve que hacer un nuevo metodo, en la parte de library en datamapper.php abajo de la linea 2566 agregue este codigo y todo se resolvio cabe mencionar que estoy trabajando con datamaper DMZ 1.7.1, de cualquier forma he enviado un correo al autor para que incluya esta mejora, de esta forma se podrían ejecutar INSERTS, DELETE y UPDATES, en SQL alternativos a los que provee el Framework $objeto->non_query($sql).
    // --------------------------------------------------------------------
    public function non_query($sql, $binds = FALSE)
    {
        // Get by objects properties
        $query = $this->db->query($sql, $binds);
    }

lunes, 13 de septiembre de 2010

Mascara de fecha con jquery

Después de hacer algunas implementaciones de fechas con calendarios como el que tiene el ajax toolkit, y telerik radcontrols, algunos usuarios no comformes solo pidieron un control de captura, ya que según esto agilizaría su trabajo, tome el código del jquery Mask de digitalbrush, sin embargo la validación de la fecha se tenía que hacer desde el servidor, hace unos días tome el mismo plugin y lo modifique permitiendome hacer la validación de la fecha conforme se capture, para ver el ejemplo favor de bajarlo de MascaradeFecha el formato forzoso es dd/mm/aaaa por el momento, favor de ver el ejemplo.

jueves, 9 de septiembre de 2010

Agregar autenticaciones de windows en windows 7

Bueno algunas veces es necesario agregar un tipo de autenticacion en windows 7 , para agregarlas a windows 7 solo hay que ir a Panel de control-> programas caracteristicas y dar click en Activar/desactivar caracteristicas de Windows