Nie, wystarczy ustawić właściwość ConnectionTimeout
Miałem dokładnie ten problem (D2009, MSSQL2005), ale TADOConnection.ConnectionTimeout działa dla mnie dobrze (btw. domyślna wartość dla tej właściwości to 15 sekund). Zwróć uwagę, że rozrzut limitu czasu jest dość duży, więc gdy przekroczysz limit czasu po 5 sekundach, a później np. po 10 sekundach, ale 20 sekund to naprawdę za dużo na próbę połączenia.
Prawdopodobnie masz problem z CommandTimeout (jeśli próbujesz wykonać zapytanie z powiązanym komponentem zestawu danych ADO). Musisz pamiętać, że jeśli ustawisz TADOConnection.ConnectionTimeout :=5 i w swoim zestawie danych komponent np. TADOQuery.CommandTimeout :=15 i próbujesz wykonać zapytanie, po 20 sekundach otrzymasz limit czasu.
Jeśli naprawdę masz problem z wykonaniem zapytania, a nie tylko próbą połączenia, ten post może Ci pomócKomponenty ADO CommandTimeout