Как использовать управляемый поставщик ADO.NET в Excel?

У меня есть поставщик управляемых данных ADO.NET, зарегистрированный в файле machine.config в DbProviderFactory. Он доступен для использования, скажем, в службах Analysis Services, поэтому я знаю, что он правильно зарегистрирован.

Однако мне нужно иметь возможность запрашивать управляемый поставщик из Excel, но управляемый поставщик не отображается в качестве выбора в свойствах канала передачи данных | Все провайдеры Ole Db.

Как сделать так, чтобы там отображался поставщик управляемых данных ADO.NET, или есть ли другой метод, который мне нужно использовать?

Заранее спасибо, Эли.


person Eli    schedule 23.11.2009    source источник
comment
Насколько я знаю, Excel по-прежнему является приложением с поддержкой COM, поэтому невозможно использовать поставщиков данных .NET. Хотя было бы мило, если бы ты мог.   -  person Josh Pearce    schedule 24.11.2009
comment
Я действительно надеюсь, что это не так - ADO.NET существовал за много лет до Office 2007, и они раскручивали управляемых провайдеров. Было бы глупо со стороны MS игнорировать его в линейке Office.   -  person Eli    schedule 24.11.2009


Ответы (3)


Оказывается, нет возможности напрямую использовать поставщика ADO.NET в Excel.

Пришлось написать провайдера OLE DB (не меньше, чем в ATL C++), чтобы соединить их — это было весело...

person Eli    schedule 17.03.2010

Это поздний пост, но теперь есть способ ADO.NET для этого — http://support.microsoft.com/kb/316934#12

person Ognyan Dimitrov    schedule 13.11.2011

У меня есть потенциальный обходной путь.

Я собираюсь создать хранимую процедуру CLR, которая, в свою очередь, будет выполнять переданный SQL-запрос с использованием управляемого провайдера.

Затем я могу вызвать хранимую процедуру, используя поставщиков SQLServer OLE DB или ODBC.

Это должно сработать, если Мёрфи будет держаться подальше.

person Eli    schedule 25.11.2009
comment
Мерфи не остался в стороне. Оказывается, SQLServer не разрешает загрузку моей сборки, потому что она зависит от управляемой сборки C++, которая не может загрузиться в SQLServer, даже если я разрешаю unsafe. - person Eli; 29.12.2009