4D v14.3DELETE SUBRECORD |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
DELETE SUBRECORD
|
DELETE SUBRECORD ( subTabela ) | ||||||||
Parâmetro | Tipo | Descrição | ||||||
subTabela | Subtabela |
![]() |
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
Produto: 4D
Tema: Subregistros
Número
96
Modificado: 4D v11 SQL
ALL SUBRECORDS
QUERY SUBRECORDS
Records in subselection
SAVE RECORD
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)