4D v14.3

DELETE SUBRECORD

Página Inicial

 
4D v14.3
DELETE SUBRECORD

DELETE SUBRECORD 


 

DELETE SUBRECORD ( subTabela ) 
Parâmetro Tipo   Descrição
subTabela  Subtabela in Subtabela para a qual vai apagar o subregistro atual

As subtabelas não são compatíveis a partir da versão 11 de 4D. Um mecanismo de compatibilidade garante o funcionamento deste comando em bancos compartilhados; entretanto, é recomendável substituir as subtabelas com tabelas relacionadas padrão.

DELETE SUBRECORD apaga o subregistro atual de subTabela. Se não houver subregistro atual, DELETE SUBRECORD não tem efeito. Depois de apagar o subregistro, a subseleção atual de subTabela fica vazia. Como resultado, DELETE SUBRECORD não pode ser utilizado para procurar uma subseleção e apagar os subregistros selecionados.

A eliminação de um subregistro não é definitiva até que o registro pai seja salvado. A eliminação de um registro pai apaga automaticamente todos seus subregistros.

Para eliminar uma subseleção, cria a subseleção, apaga o primeiro subregistro, recria a subseleção, apaga o primeiro subregistro, etc.

O exemplo abaixo apaga todos os subregistros de uma subtabela::

 ALL SUBRECORDS([Pessoas]Crianças)
 While(Records in subselection([Pessoas]Crianças)>0)
    DELETE SUBRECORD([Pessoas]Crianças)
    ALL SUBRECORDS([Pessoas]Crianças)
 End while

O exemplo abaixo apaga da subtabela [Pessoas]Crianças os subregistros nos quais a idade das crianças é superior ou igual a 12 anos:

 ALL RECORDS([Pessoas]` Seleção de todos os registros
 For($vlRegistro;1;Records in selection([Pessoas])) ` Para todos os registros na tabela
  ` Pesquisar todos os registros que tenham subregistros que correspondam ao critério
    QUERY SUBRECORDS([Pessoas]Crianças;[Pessoas]CriançasIdade>=12)
  ` Loop até que a pesquisa não encontre mais subregistros
    While(Records in subselection([Pessoas]Crianças)>0)
  ` Apagar o subregistro
       DELETE SUBRECORD([Pessoas]Crianças)
  ` Pesquisa novamente
       QUERY SUBRECORDS([Pessoas]Crianças;[Pessoas]CriançasIdade>=12)
    End while
    SAVE RECORD([Pessoas]` Salvar o registro pai
    NEXT RECORD([Pessoas])
 End for

 
PROPRIEDADES 

Produto: 4D
Tema: Subregistros
Número 96

Este comando é obsoleto e não deve ser mais utilizado

 
HISTÓRIA 

Modificado: 4D v11 SQL

 
VER TAMBÉM 

ALL SUBRECORDS
QUERY SUBRECORDS
Records in subselection
SAVE RECORD

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v12.4)
Manual de linguagem 4D ( 4D v11 SQL Release 6)
Manual de linguagem 4D ( 4D v14 R3)
Manual de linguagem 4D ( 4D v14 R2)
Manual de linguagem 4D ( 4D v13.5)
Manual de linguagem 4D ( 4D v14.3)
Manual de linguagem 4D ( 4D v14 R4)