Diferencia entre revisiones de «DEV CLASES»
(No se muestra una edición intermedia del mismo usuario) | |||
Línea 58: | Línea 58: | ||
! Columna !! Campo físico !! Campo lógico !! Atributo !! Descripción !! Etiquetas !! Definición !! Observaciones | ! Columna !! Campo físico !! Campo lógico !! Atributo !! Descripción !! Etiquetas !! Definición !! Observaciones | ||
|- | |- | ||
|1||Codigo||Codigo||[[VARCHAR(128)|VARCHAR(128)]]||Caracteres de longitud variable hasta 128 caracter/es||KEY,REQ,VIS,INS||[[DEV CLASES|prxclases]]|| | |1||Codigo||Codigo||[[VARCHAR(128)|VARCHAR(128)]]||Caracteres de longitud variable hasta 128 caracter/es||KEY,REQ,VIS,INS||[[DEV CLASES|prxclases]]||Código de la clase, si no es abstracta será el nombre de la tabla. | ||
|- | |- | ||
|2||Descripcion||Descripcion||[[VARCHAR(128)|VARCHAR(128)]]||Caracteres de longitud variable hasta 128 caracter/es||REQ,VIS,INS,UPD||[[DEV CLASES|prxclases]]|| | |2||Descripcion||Descripcion||[[VARCHAR(128)|VARCHAR(128)]]||Caracteres de longitud variable hasta 128 caracter/es||REQ,VIS,INS,UPD||[[DEV CLASES|prxclases]]||Descripción de la clase. | ||
|- | |- | ||
|3||Ancestro||Ancestro||[[VARCHAR(128)|VARCHAR(128)]]||Caracteres de longitud variable hasta 128 caracter/es||VIS,INS||[[DEV CLASES|prxclases]]|| | |3||Ancestro||Ancestro||[[VARCHAR(128)|VARCHAR(128)]]||Caracteres de longitud variable hasta 128 caracter/es||VIS,INS||[[DEV CLASES|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|BIT]]||Campo lógico, admite 1, 0 y NULL||VIS,INS||[[DEV CLASES|prxclases]]|| | |4||Abstracta||Abstracta||[[BIT|BIT]]||Campo lógico, admite 1, 0 y NULL||VIS,INS||[[DEV CLASES|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)|VARCHAR(128)]]||Caracteres de longitud variable hasta 128 caracter/es||REQ,VIS,INS,UPD||[[DEV CLASES|prxclases]]|| | |5||TipoClase||TipoClase||[[VARCHAR(128)|VARCHAR(128)]]||Caracteres de longitud variable hasta 128 caracter/es||REQ,VIS,INS,UPD||[[DEV CLASES|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)|VARCHAR(128)]]||Caracteres de longitud variable hasta 128 caracter/es||VIS,INS||[[DEV CLASES|prxclases]]|| | |6||DetalleCodigo||DetalleCodigo||[[VARCHAR(128)|VARCHAR(128)]]||Caracteres de longitud variable hasta 128 caracter/es||VIS,INS||[[DEV CLASES|prxclases]]||Si la clase es detalle de otra este campo debe indicar de qué clase es detalle. | ||
|- | |- | ||
|7||DetalleVisual||DetalleVisual||[[PRXCLASES_RELACIONVISUAL|PRXCLASES_RELACIONVISUAL]]||prxclases, relación visual con master||VIS,INS,UPD||[[DEV CLASES|prxclases]]|| | |7||DetalleVisual||DetalleVisual||[[PRXCLASES_RELACIONVISUAL|PRXCLASES_RELACIONVISUAL]]||prxclases, relación visual con master||VIS,INS,UPD||[[DEV CLASES|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|BIT]]||Campo lógico, admite 1, 0 y NULL||VIS,INS||[[DEV CLASES|prxclases]]||Marcar | |8||RestriccionCascada||RestriccionCascada||[[BIT|BIT]]||Campo lógico, admite 1, 0 y NULL||VIS,INS||[[DEV CLASES|prxclases]]||Marcar para que la clase actualice y elimine en cascada con el maestro. | ||
|- | |- | ||
|9||Catalogo||Catalogo||[[DEV CATALOGOS|pCATALOGO]]||Catálogos||REQ,||[[DEV CLASES|prxclases]]|| | |9||Catalogo||Catalogo||[[DEV CATALOGOS|pCATALOGO]]||Catálogos||REQ,||[[DEV CLASES|prxclases]]||Catálogo al que pertenece la clase. | ||
|- | |- | ||
|10||CatalogoKey||CatalogoKey||[[VARCHAR(256)|VARCHAR(256)]]||Caracteres de longitud variable hasta 256 caracter/es||INS,UPD||[[DEV CLASES|prxclases]]|| | |10||CatalogoKey||CatalogoKey||[[VARCHAR(256)|VARCHAR(256)]]||Caracteres de longitud variable hasta 256 caracter/es||INS,UPD||[[DEV CLASES|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||[[DEV CATALOGOS/ETIQUETAS MENU|pCATALOGO_TAG]]||Catálogos, etiquetas de menú||VIS,INS,UPD||[[DEV CLASES|prxclases]]|| | |11||CatalogoMenu||CatalogoMenu||[[DEV CATALOGOS/ETIQUETAS MENU|pCATALOGO_TAG]]||Catálogos, etiquetas de menú||VIS,INS,UPD||[[DEV CLASES|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|prxtimestamp]]||Marca de tiempo.||REQ,||[[DEV CLASES|prxclases]]|| | |12||TS||TS||[[prxtimestamp|prxtimestamp]]||Marca de tiempo.||REQ,||[[DEV CLASES|prxclases]]||TIMESTAMP del momento de creado de la clase. | ||
|- | |- | ||
|} | |} | ||
=Observaciones adicionales sobre los campos= | =Observaciones adicionales sobre los campos= | ||
=Relaciones= | =Relaciones= | ||
=Triggers= | =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 [[:Category:DEV REGISTRO|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 [[DEV CATALOGOS/PRIMITIVOS|Tipos de datos primitivos (pPDT)]] y [[DEV CATALOGOS/ATRIBUTOS|Tipos de datos definidos (pUDT)]]. | |||
Este trigger opera en INSERT, UPDATE y DELETE. |
Revisión actual - 16:39 21 mar 2025
Descripción

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
- Los campos de la tabla se definen en Clases, campos (prxcampos).
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:
- Clases, triggers (prxtriggers) define la cabecera del trigger indicando el nombre y ante qué operaciones se ejecuta.
- Clases, detalle de triggers (prxtriggersd) define los comandos SQL que conforman el trigger.
Í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:
- (ok) Clases, índices (pCLASE_INDICE) define el índice y los campos que lo conforman.
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:
- Clases, índices adicionales (prxclases_indice) cabecera del viejo esquema de definición de índices.
- Clases, índices adicionales, campos (prxclases_indiceC) lista de campos del viejo esquema de definición de índices.
Otras utilidades
La siguiente clase permite renombrar un campo de una tabla:
- Campos, campos renombrados (pCAMPO_RENAME) permite renombrar el campo de una clase ocupándose de todos los detalles involucrados.
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:
- Clases, agrega un valor default a una columna (pCAMPO_DEFAULT) permite asociar un valor por defecto a un campo de una tabla.
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.