El ExecSQL se utiliza cuando ya tienes todo listo.... no antes. Y solo para consultas de modificación o alteración de datos. Para un "select" normal, se utiliza open.
Código Delphi
[-]
with TuADOQuery do begin
If active then close;
SQL.Clear;
SQL.Add('Delete From TuTabla');
SQL.Add('Where UnCampo = :UnValor');
Parameters.ParamByName('UnValor').Value := 1
ExecSQL;
end;
ese ejemplo borraría de la tabla todos los registros donde " UnCampo = 1 "
Saludos.