Видимо, потому что Source может быть как строкой, так и ссылкой на ADODB.Command и 1цэ этот момент не может корректно разрулить (кстати, с ActiveConnection такая же неприглядная картина).
Используй вариант
RecordSet.Open(SQL);
какие два?
тот же самый драйвер и код работают в 7.7
а 8 не понимает RecordSet.Source = SQL.
т.е. не ругается, но не выполняется.
хотя после выполнения там появляется текст SQL
(4)
У COM объекта свойство представляется парой методов set_Свойство(для присваивания свойству значения) и get_Свойство(для получения значения свойства).
В данном случае у метода set_Sourse есть два варианта (два "перегруженных" метода в терминах ООП).
Вариант №1:
В качестве параметра в set_Sourse передаётся ссылка на ADODB.Command.
(работает везде)
Вариант №2:
В качестве параметра в set_Sourse передаётся строка.
(не работает в 1цэ 8)
ЗЫ. Как только 8 версия вышла я сразу на такое напоролся, только не Source, а с ActiveConnection.