Поставщик занимается поставкой, того чего его просят, просит его АДО, которым вы управляете.
Вот вы бросили запрос, адо попросила енжин выполнить комманду. Тот обратился к базе, база выполнила запрос отдала ответ назад, по обратной цепочке
этот ответ дошел в АДО, она его раскидала по соотв. локальным объектам, - формирование списка филдов и т.п. мета-данных относящихся собственно к схеме того ответа который пришел создала если надо рекодсет и т.п. Все теперь вам стал доступен ответ, ну смотря чего вы просили, в общем случае некий набор данных. С этого момента вы можете обращатся к объектам адо и требовать у них собственно данные.
Заметили, никакого поставщика уже и близко нет, мавр сделал свое дело и отдыхает до след комманды, если такова будет.
Адо не занимается интелектуальным разбором, есть ли такое поле или нет в базе, ей это до фанаря да и неважно все это.
А вот если в процессе выполнение команды в субд, или в драйвере, ну например синтаксис кривой - драйвер ругнет, или вы сами сгенерировали исключение, вот тогда вам придут те самые ошибки о которых вы тут говорите. В противном случае, все ок.
Далее это чисто прикладной аспект с точки зрения адо. Вы просите дать данные поля которого не прислал никто, адо по внутренним своим объектам (филдам) прошерстила, не нашла и честно вам про это сказала. А так как эта вся кухня обернута в лотусе, то вы получили исключение в лотусе.
вот голопом, несколько сумбурно и "своими" 2-мя словами
Почему не суть как важны поля:
дело в том что в общем случае количесвенно-качественные характеристики приходящих данных не = тому что есть в базе.
допустим есть таблица
T1 ( F1 (строка), F2 (число), F3 (дата) )
мы имеем полное право сделать к примеру такой запрос
select F1 + ' - ' + CAST(F2 as varchar(10)) as SuperPuperField, F3-10 as DateBefore10, 'O My Life' as fgdfhk from T1
в итоге мы получим такое
SuperPuperField (строка), DateBefore10 (дата), fgdfhk (строка)
как видите, структура не имеет ничего общего с реальной картиной в Т1, хотя вроде как принадлежит именно Т1.
Теперь если мы напишем такое:
Record.Fields.Item( "fgdfhk" ).Value то законно получим = 'O My Life'