Здравствуйте, Figaro, Вы писали:
F>Теперь сам собственно сам вопрос: При использовании "MS OLE DB Provider for ODBC Drivers" этот Accessor работает прекрасно, но при использовании "MS Jet 4.0 OLE DB Provider" вылезает ошибка (выделено болдом) о невозможности column binding'а в карте второго Accessor'а. Как победить этот провайдер с одним классом CGenericAccessor?
F>P.S.
F>Переделал под два разных Accessor'a — все работает с двумя провайдерами... Но лишний класс...
Согласно MSDN (
Using Multiple Accessors on a Rowset) есть 3 возможных сценария, требующих использования multiple accessors. Ваш случай в них не попадает, так что использование двух accessor-ов это вполне логичное решение.
По сути самой проблемы — скорее всего это очередной баг OLEDB классов. Провайдер для ODBC отличается тем, что поддерживает большинство свойств и интерфейсов, используемых OLEDB классами, которые могут не поддерживаться другими провайдерами. Пример — DBMEMOWNER_PROVIDEROWNED.