4D v13.4

DELETE SUBRECORD

Inicio

 
4D v13.4
DELETE SUBRECORD

DELETE SUBRECORD 


 

DELETE SUBRECORD ( subtabla ) 
Parámetro Tipo   Descripción
subtabla  Subtabla in Subtabla de la cual borrar el subregistro actual

A partir de la versión 11 de 4D no se soportan subtablas. Un mecanismo de compatibilidad asegura el funcionamiento de este comando en bases compartidas; sin embargo, se recomienda remplazar las subtablas con tablas relacionadas estándar.

DELETE SUBRECORD borra el subregistro actual de subtabla. Si no hay subregistro actual, DELETE SUBRECORD no tiene efecto. Después de borrar el subregistro, la subselección actual de subtabla queda vacía. Como resultado, DELETE SUBRECORD no puede utilizarse para recorrer una subselección y borrar los subregistros seleccionados.

La eliminación de un subregistro no es definitiva hasta que el registro padre se guarde. La eliminación de un registro padre borra automáticamente todos sus subregistros.

Para eliminar una subselección, cree la subselección, borre el primer subregistros, recree la subselección, borre el primer subregistro, etc.

El siguiente ejemplo borra todos los subregistros de una subtabla:

 ALL SUBRECORDS([Personas]Niños)
 While(Records in subselection([Personas]Niños)>0)
    DELETE SUBRECORD([Personas]Niños)
    ALL SUBRECORDS([Personas]Niños)
 End while

El siguiente ejemplo borra de la subtabla [Personas]Niños los subregistros en los cuales la edad de los niños es superior o igual a 12 años:

 ALL RECORDS([Personas]) ` Selección de todos los registros
 For($vlRegistro;1;Records in selection([Personas])) ` Para todos los registros en la tabla
  ` Buscar todos los registros que tienen subregistros que corresponden al criterio
    QUERY SUBRECORDS([Personas]Niños;[Personas]NiñosEdad>=12)
  ` Bucle hasta que la búsqueda no encuentre más subregistros
    While(Records in subselection([Personas]Niños)>0)
  ` Borrar el subregistro
       DELETE SUBRECORD([Personas]Niños)
  ` Búsqueda nuevamente
       QUERY SUBRECORDS([Personas]Niños;[Personas]NiñosEdad>=12)
    End while
    SAVE RECORD([Personas]) ` Guardar el registro padre
    NEXT RECORD([Personas])
 End for

 
PROPIEDADES 

Producto: 4D
Tema: Subregistros
Número 96

Este comando es obsoleto y no debe utilizarse más

 
INDEX

Lista alfabética de los comandos

 
HISTORIA 

Modificado: 4D v11 SQL

 
VER TAMBIÉN 

ALL SUBRECORDS
QUERY SUBRECORDS
Records in subselection
SAVE RECORD