allora, devi verificare:
- il formato restituito dal DTPicker (mi sembra che sia gg/mm/aaaa)
- il formato restituito dalla CDate (dovrebbe essere mm/gg/aaaa)
- il formato gestito da SQL
Si tratta di passare le data nel foprmato corretto, se fai qualche prova dovresti riuscirci.
Al limite usa DTPDal.Day, DTPDal.Month e DTPDal.Year per ricomporti la data in una stringa a seconda del formato che ti serve.
A me è capitato di imbattermi in un errore causato da una formattazione che mi rovesciava la data anche se io la passavo correttamente.