No, è sufficiente impostare la proprietà ConnectionTimeout
Ho riscontrato il problema esatto (D2009, MSSQL2005), ma TADOConnection.ConnectionTimeout funziona bene per me (tra l'altro il valore non valido per questa proprietà è 15 secondi). Nota che la dispersione del timeout è piuttosto ampia, quindi una volta scaduto il timeout dopo 5 secondi e successivamente, ad es. dopo 10 secondi, ma 20 secondi sono davvero troppi per il tentativo di connessione.
Probabilmente hai un problema con CommandTimeout (se stai tentando di eseguire una query con il componente del set di dati ADO associato). È necessario ricordare che se si imposta TADOConnection.ConnectionTimeout :=5 e nel componente del set di dati, ad es. TADOQuery.CommandTimeout :=15 e stai tentando di eseguire la query, dopo 20 secondi otterrai un timeout.
Se hai davvero un problema con l'esecuzione della query, non solo con il tentativo di connessione, questo post può aiutartiComponenti ADO CommandTimeout