Deixa o seu select no SqlDataset mesmo somente dê o open do ClientDataset.....e pegue os dados dele DM1.ClientDataSet.Open; if DM1.ClientDataSet.IsEmpty then begin ... Result := False. end; o sql fica no SqlDataset mesmo mas nao de open nele, somente no ClientDataset