versión 3
DELETE SELECTION {(tabla)}
Parámetro | Tipo | Descripción | |
tabla | Tabla | Tabla de la cual borrar la selección actual o | |
Tabla por defecto, si se omite |
Descripción
DELETE SELECTION borra la selección actual de registros de tabla. Si la selección actual está vacía, DELETE SELECTION no hace nada. Después de borrar los registros, la selección actual queda vacía. Los registros que se borran durante una transacción están bloqueados para los otros usuarios y procesos hasta que la transacción se valide o cancele.
Advertencia: La supresión de una selección de registros es una operación definitiva, y no puede deshacerse.
Ejemplos
1. El siguiente ejemplo muestra todos los registros de la tabla [Personas] y permite al usuario seleccionar cuáles borrar. El ejemplo tiene dos partes. La primera es un método para mostrar los registros. La segunda es un método de objeto para un botón Borrar. Este es el primer método:
ALL RECORDS ([Personas]) ` Selección de todos los registros OUTPUT FORM ([Personas]; "Lista") ` Definición del formulario para listar los registros DISPLAY SELECTION ([Personas]) ` Mostrar todos los registros
El siguiente es el método de objeto del botón Borrar, que aparece en el pie de página del formulario de salida. El método de objeto utiliza los registros seleccionados por el usuario (el conjunto sistema UserSet) para borrar la selección. Note que si el usuario no selecciona ningún registro, DELETE SELECTION no tiene ningún efecto.
` Solicitar confirmación de que el usuario realmente quiere borrar los registros CONFIRM("Usted seleccionó"+String(Records in set ("UserSet"))+" personas a borrar." +Char(13)+"Haga clic en OK para borrarlas.") If (OK=1) USE SET ("UserSet") ` Utilizar los registros elegidos por el usuario DELETE SELECTION([Personas]) ` Borrar la selección de registros End if ALL RECORDS ([Personas]) ` Selección de todos los registros
2. Si se encuentra un registro bloqueado durante la ejecución de DELETE SELECTION, ese registro no se borra. Todos los registros bloqueados se colocan en un conjunto sistema llamado LockedSet. Después de la ejecución de DELETE SELECTION, puede probar LockedSet para verificar si los registros estaban bloqueados. El siguiente bucle se ejecutará hasta que todos los registros se borren:
Repeat ` Repetir para cada registro bloqueado DELETE SELECTION([EstaTabla]) If (Records in set("LockedSet")#0) ` Si hay registros bloqueados USE SET ("LockedSet") ` Seleccionar únicamente los registros bloqueados End if Until (Records in set("LockedSet")=0) ` Hasta que no haya más registros bloqueados
Ver también
Conjuntos, DISPLAY SELECTION, MODIFY SELECTION, Record Locking, TRUNCATE TABLE.