Это старый вопрос, но у меня возникла та же проблема, и, возможно, это может помочь другим.
В Delphi 7 в ADODB есть процедура, которая возвращает TStringList с именами провайдеров.
Пример использования:
names := TStringList.Create;
ADODB.GetProviderNames(names);
if names.IndexOf('SQLNCLI10')<>-1 then
st := 'Provider=SQLNCLI10;'
else if names.IndexOf('SQLNCLI')<>-1 then
st := 'Provider=SQLNCLI;'
else if names.IndexOf('SQLOLEDB')<>-1 then
st := 'Provider=SQLOLEDB;';