DEV CLASES

De Pragma Wiki
Ir a la navegación Ir a la búsqueda

Descripción

Diagrama de clases.

La tabla prxclases (Clases) define las clases del sistema (o tablas).

Las tablas (ver Tablas) guardan los datos de los usuarios y tienen un formato similar a una planilla de cálculo con columnas (que son los 'campos') y filas (que son los 'registros').

Por ejemplo, en una tabla que contiene los datos de los empleados de una compañía puede haber una fila para cada empleado y distintas columnas en las que figuren detalles de los mismos, como el número de empleado, el nombre, la dirección, el puesto que ocupa y su número de teléfono particular.

Las tablas creadas usando el catálogo pueden ser editadas dentro de la aplicación desarrollada en Delphi para este sistema.

Las tablas existentes en la base de datos, pero no definidas en el catálogo, no pueden editarse dentro de la aplicación.

Programación orientada a objetos

La funcionalidad de las tablas admite la programación orientada a objetos a través de la cual:

  • Podemos crear tablas que contienen datos (los campos de su estructura) y comportamiento (a través de triggers).
  • Esas tablas pueden ser 'derivadas' (crear una nueva tabla en base a otras) para crear nuevas tablas en las que solo tenemos que agregar campos complementarios sin repetir lo ya definido.

Esta opción permite aprovechar código preexistente además de habilitar a la modificación de las tablas de base propagando esa funcionalidad a todas las derivadas.

También podemos crear clases 'abstractas', que no se crean físicamente en la base de datos, definiendo una estructura y comportamiento, y cuya finalidad es ser derivadas en nuevas clases (éstas nuevas clases heredan toda la funcionalidad de las clases de base).

Estructura

Detalle de campos

Triggers

Los triggers (ver Triggers) permiten agregar comportamiento a las operaciones de inserción, actualización o eliminación de datos de una tabla. Para ello se usan:

Índices

Los índices (ver Índices) son estructuras de datos que mejoran la velocidad de las operaciones, permitiendo un rápido acceso a los registros de una tabla en una base de datos. Al aumentar drásticamente la velocidad de acceso, se suelen usar sobre aquellos campos sobre los cuales se hacen frecuentes búsquedas.

La única tabla que se usa actualmente para definir índices es:

Las siguientes dos tablas pertenecen al viejo esquema de definición de índices y se encuentran obsoletas, se documentan en el estado en que se encuentran:

Otras utilidades

La siguiente clase permite renombrar un campo de una tabla:

Los valores predeterminados o valores por defecto (Ver Valores predeterminados) permiten asignar un valor a campos de tablas si al momento de insertar su registro no se le da un valor específico. Esto se puede definir usando:

Identidad

  • Tabla: prxclases
  • Tipo: TABLA
  • Define atributo Codigo
  • Catálogo: SYS OBJETOS

Lista de campos

Columna Campo físico Campo lógico Atributo Descripción Etiquetas Definición Observaciones
1 Codigo Codigo VARCHAR(128) Caracteres de longitud variable hasta 128 caracter/es KEY,REQ,VIS,INS prxclases Código de la clase, si no es abstracta será el nombre de la tabla.
2 Descripcion Descripcion VARCHAR(128) Caracteres de longitud variable hasta 128 caracter/es REQ,VIS,INS,UPD prxclases Descripción de la clase.
3 Ancestro Ancestro VARCHAR(128) Caracteres de longitud variable hasta 128 caracter/es VIS,INS prxclases Si la clase deriva de otra aquí hay que indicar de que clase deriva, si no deriva de ninguna clase hay que dejar el campo vacío.
4 Abstracta Abstracta BIT Campo lógico, admite 1, 0 y NULL VIS,INS prxclases Las clases abstractas permiten la definición normal de todos sus atributos pero no se crean físicamente en la base de datos. Sirven como ancestro para ser derivadas por nuevas clases.
5 TipoClase TipoClase VARCHAR(128) Caracteres de longitud variable hasta 128 caracter/es REQ,VIS,INS,UPD prxclases Define el tipo de clase. Los tipos habilitados son Catálogo,Configuración,Maestros,Movimientos,Parámetros,Preferencias,Seguridad Y Utilidades. El campo no tiene ningún efecto en el sistema y probablemente sea eliminado eventualmente.
6 DetalleCodigo DetalleCodigo VARCHAR(128) Caracteres de longitud variable hasta 128 caracter/es VIS,INS prxclases Si la clase es detalle de otra este campo debe indicar de qué clase es detalle.
7 DetalleVisual DetalleVisual PRXCLASES_RELACIONVISUAL prxclases, relación visual con master VIS,INS,UPD prxclases Indica como se muestra si es detalle de otra clase. NA: no se muestra como detalle, detail: se muestra como un detalle normal y detail x menu se muestra como detalle por menú.
8 RestriccionCascada RestriccionCascada BIT Campo lógico, admite 1, 0 y NULL VIS,INS prxclases Marcar para que la clase actualice y elimine en cascada con el maestro.
9 Catalogo Catalogo pCATALOGO Catálogos REQ, prxclases Catálogo al que pertenece la clase.
10 CatalogoKey CatalogoKey VARCHAR(256) Caracteres de longitud variable hasta 256 caracter/es INS,UPD prxclases Ubicación de la clase dentro del menú del catálogo (no tiene que ver con los menús de usuario). Este esquema de menús será eventualmente reemplazado por el siguiente campo.
11 CatalogoMenu CatalogoMenu pCATALOGO_TAG Catálogos, etiquetas de menú VIS,INS,UPD prxclases Código de etiqueta seleccionado de las etiquetas del catálogo. Este será el nuevo esquema de armado de menús.
12 TS TS prxtimestamp Marca de tiempo. REQ, prxclases TIMESTAMP del momento de creado de la clase.

Observaciones adicionales sobre los campos

Relaciones

Triggers

prxclases_TR_DELETE

Cuando eliminamos una clase, la elimina de todas las referencias que puede tener en el sistema.

prxclases_TR_prxdevlog_clases_DEL

Elimina la clase de todas las tablas de Registro.

prxclases_TR_prxrelaciones_clases_fk_INSERT

Al insertar una clase la agrega a la tabla prxrelaciones_clases para poder usar la nueva tabla en las relaciones.

prxclases_TR_pUDT_REFRESCAR

Llama al procedimiento pUDT_REFRESCO_EXEC para refrescar los atributos de Tipos de datos primitivos (pPDT) y Tipos de datos definidos (pUDT).

Este trigger opera en INSERT, UPDATE y DELETE.