【问题标题】:Managed OleDB provider written in C#用 C# 编写的托管 OleDB 提供程序
【发布时间】:2010-09-08 09:06:08
【问题描述】:

OleDB 提供程序是由 Microsoft 提供的实现 COM 接口的二进制文件。由此看来,似乎可以使用 C# 创建提供程序。那是对的吗?有样品证明吗?如果没有,你会阻止我这样做吗?我看到有多个非托管样本,但我找不到任何托管样本。

【问题讨论】:

    标签: c# com oledb


    【解决方案1】:

    文章不错,但实际上并没有回答问题。 OLEDB 是一组 COM 接口,实际上可以通过 COM Interop 在 .Net 中实现,尽管我从未听说过这样的实现并且可能不建议这样做。

    这组 OLEDB 接口由 Microsoft here 记录。 OLEDB 是一个复杂的话题,并非所有接口都需要实现功能提供程序。更糟糕的是,不同的 OLEDB 客户端具有使用提供程序所需的一组接口。例如,这里有一个list of require interfaces,必须实现它才能使用来自 .Net OLEDB 客户端 (System.Data.OleDb.*) 的提供程序。注意:我没有找到 2.0 Framework 或更高版本的此类链接。最后值得注意的是,实现提供者非常困难,微软后来提供了一组 ATL 模板 (C++) 来帮助实现者正确地做到这一点。

    要了解有关 OLEDB 的更多信息,我绝对建议您查看 MSDN 上的Windows Data Access SDK。

    【讨论】:

    【解决方案2】:

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

    using System.Data.OleDb;
    

    我当然不鼓励编写一个存在且运行良好的提供程序! :)

    但在回答您的第一个问题时,您当然可以创建自己的问题。 Data Provider Roadmap 可能是开始概述和示例链接等的好​​地方。

    【讨论】:

    • -1 这不是真的,System.Data.OleDb 托管实现是 OLEDB 客户端,而不是提供者。提供程序允许从任何 OLEDB 客户端访问一组数据。有 SQL、Jet、Oracle、Index Server 和许多其他数据源的提供程序。这些都没有在托管代码中实现。
    猜你喜欢
    • 1970-01-01
    • 2013-01-09
    • 2014-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 2012-04-11
    相关资源
    最近更新 更多