Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!

DELETE

Propósito

Suprimir um registro.

Sintaxe

DELETE [CASCADE | KEYINFO | SETNULL]

Argumentos

CASCADE

determina que os registros subordinados ao registro excluído também sejam excluídos.

KEYINFO

atualiza as chaves estrangeiras dos registros subordinados segundo a informação contida no dicionário de dados.

SETNULL

coloca nulo nas chaves estrangeiras dos registros subordinados.

Utilização

Suprime o último registro lido no arquivo selecionado. Tanto pode ser um arquivo de banco de dados como um arquivo externo.

A supressão de um registro é feita de forma física, isto é, o registro tem seu conteúdo removido do arquivo de dados e de seus índices.

Em arquivos OpenBASE os registros suprimidos ocupam espaço para futuras inclusões. Isto agiliza o processo de exclusão e inclusão de registros, porque não é feita uma reorganização do arquivo na exclusão e nem o tamanho do arquivo é alterado durante a inclusão.

Quando se realiza um número muito grande de exclusões, o arquivo passa a ocupar espaço desnecessário. Quando isso ocorrer, sugere-se que se faça uma manutenção no banco ou nos arquivos que apresentem tais características.

Quando utilizado com a opção CASCADE, são excluídos primeiramente os registros dos arquivos subordinados ao registro corrente, se estes tiverem subordinações estas também serão excluídas. Esta opção representa uma exclusão em cadeia hierárquica.

Quando utilizado com a opção KEYINFO, a exclusão do registro corrente é feita dependendo da informação definida para as chaves estrangeiras do registro corrente. Para cada opção de deleção o comando DELETE agirá de uma maneira particular.

Opção C (cascata) : Obriga a exclusão dos registros subordinados ao registro lido no arquivo selecionado.

Opção S (nulo) : Obriga a colocação de nulo no valor da chave estrangeira. Neste caso, a chave estrangeira deve obrigatoriamente ser do tipo nulo.

Opção R (restrito) : Obriga a não exclusão do registro subordinado.

Quando utilizado com a opção SETNULL, as chaves estrangeiras são modificadas para nulo e o registro corrente é removido. Isto só é possível se as chaves estrangeiras forem do tipo nulo.

O comando DELETE, por DEFAULT, não permite a exclusão de registros com ligações, retornando um valor diferente de zero pela função DBERR( ), garantindo a integridade referencial.

Exemplo

O exemplo a seguir mostra como suprimir todos os registros dos funcionários que já se aposentaram.

USE tab_func

LOCATE FOR ino_func = 001

DO WHILE FOUND( )

  DELETE

  CONTINUE

ENDDO

Consulte

LOCATE, SEEK, USE, ZAP, DBERR( ), EOF( ), FDELETE( ), FGO( ), FGPDELETE( ) e FEMPTY( ).

Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!