O TCustomSQLDataSet.ExecSQL tem um bug no Delphi 2007, que ignora quando uma Query já está preparada. A cada vez que o método é executado, ele refaz todo o processo, tornando as chamadas consecutivas do ExecSQL lentas por não aproveitar o ???Prepare???. Este problema está reportado no QC 56985 e foi corrigido no Delphi 2009.

Se você usa o Delphi 2007, a dica de como resolver este problema foi postada no fórum da CodeGear:

  • Crie uma cópia da unit SqlExpr.pas no diretório do seu projeto
  • Copie o código de TCustomSQLDataSet.ExecSQL do Delphi 2009 para a cópia do SqlExpr.pas, substituindo o código original
  • Adicione a unit SqlExpr.pas ao seu projeto.
Bookmark and Share: