DELETE SUBRECORD

4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 11 (Modificado)


DELETE SUBRECORD (subtabla)

ParámetroTipoDescripción
subtablaSubtablaSubtabla de la cual borrar el subregistro actual

Nota de compatibilidad: Las subtablas no son soportadas a partir de la versión 11 de 4D. Un mecanismo de compatibilidad asegura el funcionamiento de este comando en bases compartidas; sin embargo, es recomendable remplazar las subtablas con tablas relacionadas estándar.

Descripción

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.

Ejemplos

1. 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

2. 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

Ver también

ALL SUBRECORDS, QUERY SUBRECORDS, Records in subselection, SAVE RECORD.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente