Active Record en Yii: Aunque la DAO de Yii puede manejar virtualmente cualquier tarea relacionada con la base de datos, lo más probable es que gastemos el 90% de nuestro tiempo escribiendo algunas sentencias SQL relacionadas con la ejecución de las operaciones CRUD comunes. Es tambien dificil mantener nuestro código cuando éste está mezclado con sentencias SQL. Para solucionar estos problemas, podemos usar los Registros Activos (Active Record). Registro Activo (AR) es una técnica popular de Mapeo Objeto-Relacional (ORM). Cada clase AR representa una tabla de la base de datos (o vista) cuyos atributos son representados como las propiedades de… Continuar leyendo


DAO en Yii: Yii provee un poderoso soporte para la programación con bases de datos. Construído sobre la extensión PHP de Obejotos de Datos (PDO), los Objetos de Acceso a Datos de Yii (DAO) habilitan el acceso a diferentes sistemas de administración de bases de datos (DBMS) en una interfaz uniforme simple. Las aplicaciones desarrolladas usando el DAO de Yii pueden ser fácilmente cambiadas para usar un DBMS diferente sin la necesidad de modificar el código de acceso a los datos. Los Registros Activos de Yii (AR), implementados con un enfoque ampliamente adoptado de Mapeo Objeto-Relacional, simplifican aún más la… Continuar leyendo


Para poder ordenar nuestro GridView bajo el criterio que queramos, eso lo hacemos modificando el parámetro sort del CActiveDataProvider que se encuentra en la función search del modelo, de igual modo vamos a agregar un condición extra en la búsqueda, en nuestro caso filtramos una determinada categoria y ordenaremos la tabla en forma descendente mediante el campo desc_producto: Si por ejemplo queremos mostrar el GridView de a 5 registros, usar lo siguiente:


En este tema quiero mostrar el manejo de las claves foráneas en Yii framework mediante Active Record (AR). Antes de usar AR para ejecutar consultas relacionales, necesitamos darle conocer a AR como una clase AR se relaciona con otra. La relación entre dos clases AR está directamente asociada con la relación entre las tablas de la base de datos representadas por esas clases. Desde el punto de vista de la base de datos, una relación entre dos tablas A y B tiene tres tipos: uno-a-muchos (ej.: User y Post), uno-a-uno (ej.: User y Profile) y muchos-a-muchos (ej.: Category y Post). En AR, hay cuatro tipo de relaciones: BELONGS_TO: si la relación… Continuar leyendo


Un tema más que importante en toda aplicación es que tenga validaciones para evitar que el usuario ingrese cualquier dato por ejemplo a una base de datos, también es importante por cuestiones de seguridad. Por suerte Yii framework nos provee validaciones de forma automática y también podemos crear nuestras propias validaciones muy fácilmente. Si queremos validar campos lo hacemos en el método rules() del modelo en cuestión: La validación para hacer campos obligatorios: array(‘id_proveedor, fecha_compra, user, id_tipo_documento, total’, ‘required’), También puedes especificar que el valor sea numero, incluso entero: array(‘id_tipo_documento’, ‘numerical’, ‘integerOnly’=>true), array(‘igv, total, descuento_total’, ‘numerical’), Para cadenas podemos restringir la… Continuar leyendo


1.1. Lenguaje de Bajo Nivel. Se denomina lenguaje máquina a la serie de datos que la parte física de la computadora o hardware, es capaz de interpretar. Una computadora digital o, mejor dicho, su parte física, sólo distingue datos de tipo binario, es decir, constituidos por dos únicos valores a los que se denomina valor 0 y valor 1 y que, físicamente, se materializan con tensiones comprendidas entre 0 y 4.0 voltios y entre 4 y 5 voltios, respectivamente. Para representar datos que contengan una información se utilizan una serie de unos y ceros cuyo conjunto indica dicha información. La… Continuar leyendo


LA API DE WINDOWS API (Aplication Programs Interface): es el equivalente a las interrupciones del MSDOS, son un conjunto de funciones que permiten dibujar ventanas, dibujar un botón. A su vez la API llama a las interrupciones del DOS. La API de Windows son mas de 600 funciones en C normal. Para acceder a ella los compiladores utilizan librerías de objetos (el Borland C++ usa ObjectWindows), permitiendo acceder a la API de manera mas fácil y reducida (son cien y pico clases). Los programas hasta ahora en DOS, cuando un programa necesitaba hacer algo, llamaba a una interrupción, servicio de… Continuar leyendo


¿QUE ES LA PROGRAMACIÓN ORIENTADA A OBJETOS? En la programación estructurada todos los programas tienen las estructuras secuencial, repetitiva o condicional. También se utilizan los TAD (Tipos Abstractos de Datos) para por ejemplo una pila o un árbol.   typdef struct{ int x,y; int color; }punto; struct punto a,b;   luego se implementan las funciones de este TAD (pila_vacia, pila_llena). En C++ se definen los TAD y las funciones o procedimientos y datos dentro de un mismo conjunto llamado class (clase).En el ejemplo, el typedef struct punto sería el equivalente en C de la class de C++ y las variables… Continuar leyendo


Árboles Generalidades Estructura De Datos NO Lineales Las estructuras dinámicas lineales de datos – listas, pilas y colas – tienen grandes ventajas de flexibilidad sobre las representaciones contiguas; Sin embargo, tienen un punto débil: SON LISTAS SECUENCIALES EN LAS ESTRUCTURAS DE DATOS NO LINEALES CADA ELEMENTO PUEDE TENER DIFERENTES “SIGUIENTES” ELEMENTOS, QUE INTRODUCEN EL CONCEPTO DE BIFURCACIÓN Terminología y Representación de un árbol general La representación y terminología de los árboles se realiza con las típicas notaciones de las relaciones familiares en los árboles genealógicos: Padre, Hijo, Hermano, Ascendente, Descendente, etc. Las definiciones a tener en cuenta son: Raíz del… Continuar leyendo