procedure DeleteRecords;
var
Query: TQuery;
begin
Query := TQuery.Create(nil);
try
Query.DatabaseName := 'ParadoxDB';
Query.SQL.Text := 'DELETE FROM NewTable WHERE ID > :MinID';
Query.Params.ParamByName('MinID').AsInteger := 5;
Query.ExecSQL;
Writeln('Registros excluídos com sucesso!');
except
on E: Exception do
Writeln('Erro ao excluir registros: ', E.Message);
end;
Query.Free;
end;
O código abaixo é um exemplo de exclusão de registros em um banco de dados utilizando o componente TQuery. Vamos analisá-lo e discutir aplicações e melhorias.
procedure DeleteRecords;
var
Query: TQuery;
begin
Query := TQuery.Create(nil);
try
Query.DatabaseName := 'ParadoxDB';
Query.SQL.Text := 'DELETE FROM NewTable WHERE ID > :MinID';
Query.Params.ParamByName('MinID').AsInteger := 5;
Query.ExecSQL;
Writeln('Registros excluídos com sucesso!');
except
on E: Exception do
Writeln('Erro ao excluir registros: ', E.Message);
end;
Query.Free;
end;
Aplicabilidade do Código
Este código realiza a exclusão de registros cuja coluna ID seja maior que um valor especificado (é 5, neste caso). Tal abordagem é útil em diversos cenários, como:
- Limpeza de Dados Antigos: Excluir registros obsoletos para melhorar o desempenho e o gerenciamento do banco.
- Manutenção Programada: Implementar exclusões periódicas baseadas em regras dinâmicas ou condições de negócio.
- Gerenciamento de Logs: Automatizar a remoção de logs antigos para economizar espaço.
Embora funcional, o código possui espaço para melhorias, como o uso de boas práticas para evitar vazamentos de memória e a adoção de abordagens mais modernas.
Melhoria 1: Uso do Bloco try..finally
Uma melhoria simples é garantir que o recurso seja liberado mesmo em caso de erro. O bloco try..finally
é ideal para isso:
procedure DeleteRecords;
var
Query: TQuery;
begin
Query := TQuery.Create(nil);
try
Query.DatabaseName := 'ParadoxDB';
Query.SQL.Text := 'DELETE FROM NewTable WHERE ID > :MinID';
Query.Params.ParamByName('MinID').AsInteger := 5;
Query.ExecSQL;
Writeln('Registros excluídos com sucesso!');
finally
Query.Free;
end;
end;
Essa alteração garante que o recurso Query
seja liberado independentemente do sucesso ou falha na execução.
Melhoria 2: Uso de Classes Helper
Outra abordagem é encapsular a lógica de conexão e execução de comandos em uma classe helper, promovendo reutilização e clareza:
type
TDatabaseHelper = class
public
class procedure ExecuteDelete(const DatabaseName, SQLCommand: string; MinID: Integer);
end;
class procedure TDatabaseHelper.ExecuteDelete(const DatabaseName, SQLCommand: string; MinID: Integer);
var
Query: TQuery;
begin
Query := TQuery.Create(nil);
try
Query.DatabaseName := DatabaseName;
Query.SQL.Text := SQLCommand;
Query.Params.ParamByName('MinID').AsInteger := MinID;
Query.ExecSQL;
Writeln('Registros excluídos com sucesso!');
except
on E: Exception do
Writeln('Erro ao excluir registros: ', E.Message);
finally
Query.Free;
end;
end;
procedure DeleteRecords;
begin
TDatabaseHelper.ExecuteDelete('ParadoxDB', 'DELETE FROM NewTable WHERE ID > :MinID', 5);
end;
A utilização de TQuery para operações em banco de dados é poderosa, mas requer cuidado para garantir manutenção, segurança e desempenho. Melhorias como o uso de try..finally
e abstração com classes tornam o código mais confiável e reutilizável. Essas técnicas são essenciais para desenvolvedores que buscam criar soluções robustas e profissionais.
Clique aqui e nos contate via What's App para avaliarmos seus projetos
Série de Livros nut Project
Nenhum comentário:
Postar um comentário