用C#编写的托管OleDB提供程序

5
一个 OleDB 提供程序是由 Microsoft 提供的实现 COM 接口的二进制文件。看起来可以使用 C# 创建提供程序,这是正确的吗?有没有演示样例呢?如果没有,您会劝阻我这样做吗?我看到有多个非托管样例,但找不到任何托管的。
2个回答

3
这篇文章很好,但实际上没有回答问题。OLEDB是一组COM接口,可以通过COM互操作在.NET中实现,尽管我从未听说过这样的实现方式,也不建议这样做。Microsoft在此处记录了一组OLEDB接口。OLEDB是一个复杂的话题,不是所有接口都需要实现功能提供程序。更糟糕的是,不同的OLEDB客户端需要一组特定的接口才能使用提供程序。例如,这里是必须实现的接口列表,以便使用.NET OLEDB客户端(System.Data.OleDb.*)提供程序(此处)。注意:我没有为2.0框架或更高版本找到这样的链接。最后值得注意的是,实现提供程序非常困难,因此微软后来提供了一组ATL模板(C ++),以帮助实施者正确地完成此任务。要了解有关OLEDB的更多信息,我肯定会推荐查看MSDN上的Windows数据访问SDK

使用C#创建自定义ODBC / OLE驱动程序中有一个相关的答案。它主要是一个指向OLEDB Simple Provider C# Custom Implementation的链接。 - Daniel Ballinger

-5

我不确定我真正理解你的问题!已经有一个托管的OleDBProvider了吗?!

using System.Data.OleDb;

我肯定会劝阻编写一个已经存在且完全正常工作的提供程序! :)

但是回答你的第一个问题,你当然可以创建自己的提供程序。数据提供程序路线图可能是一个好的起点,提供概述和示例链接等。


-1 这不是真的,System.Data.OleDb托管实现是一个OLEDB客户端,而不是提供程序。提供程序允许任何OLEDB客户端访问一组数据。有SQL、Jet、Oracle、索引服务器和许多其他数据源的提供程序。这些都没有在托管代码中实现。 - Peter Oehlert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接