Tiempo aproximado de lectura 00:03:00 min
Duda:
¿Como crear un campo interno en las tablas DBAccess, no visible en la estructura de acceso de AdvPL, para registrar la fecha y hora (marca de tiempo) de cada registro insertado y/o modificado en la base de datos?
Entorno
Cross Segmentos - TOTVS BackOffice (Línea Protheus) - MI - ADVPL - A partir de la versión 12 en adelante
Solución
La implementación del campo de control S_T_A_M_P_ en los siguientes gestores de base de datos:
- MSSQL
- ORACLE
- POSTGRES
El campo se actualiza directamente por el DBMS cada vez que se ejecuta una instrucción UPDATE.
- Tipo de campo:
-
MSSQL:
DATETIME -
Postgres/Oracle:
TIMESTAMP
-
MSSQL:
- Actualización del campo:
- Durante la inserción de nuevos registros.
- Durante la modificación de registros existentes.
- El valor se guarda en la zona horaria UTC, obtenido de manera nativa por la base de datos.
- Responsabilidad:
- La creación del campo y su mantenimiento (a través de triggers) es responsabilidad de DBAccess.
- Incorporación del campo en tablas:
- Nuevas tablas: Se incluye automáticamente al momento de su creación.
- Tablas existentes: Se puede agregar bajo demanda utilizando la función
TCConfig().
- Restricciones:
- En tablas existentes, los valores del campo S_T_A_M_P_ permanecen como
NULLhasta que los registros sean modificados. - No se aplica a tablas temporales.
- En tablas existentes, los valores del campo S_T_A_M_P_ permanecen como
- Consulta del campo S_T_A_M_P_:
- Cuando se consulta directamente, DBAccess interpreta la información como un campo de tipo "D" (Fecha) en AdvPL y solo devuelve la fecha (sin incluir la hora).
- Para obtener la fecha y hora completa en formato
aaaa-mm-dd hh:MM:ss.mmm, se debe realizar un CAST.
Información adicional:
- Llamada relacionada: MTEC-3238
- Documentación: Consulte la sección [Entorno], clave UseRowStamp en la documentación de DBAccess.
- Notas importantes:
- Las columnas S_T_A_M_P_ no se llenan automáticamente en registros existentes al agregar el campo a una tabla ya creada.
- La información de fecha y hora completa solo puede ser recuperada correctamente mediante CAST en consultas SQL.
Conozca más:
Implementação - Campo de controle adicional no DBAccess - S_T_A_M_P_ - TOTVSTEC - TDN
0 Comentarios