【发布时间】:2010-09-08 09:06:08
【问题描述】:
OleDB 提供程序是由 Microsoft 提供的实现 COM 接口的二进制文件。由此看来,似乎可以使用 C# 创建提供程序。那是对的吗?有样品证明吗?如果没有,你会阻止我这样做吗?我看到有多个非托管样本,但我找不到任何托管样本。
【问题讨论】:
OleDB 提供程序是由 Microsoft 提供的实现 COM 接口的二进制文件。由此看来,似乎可以使用 C# 创建提供程序。那是对的吗?有样品证明吗?如果没有,你会阻止我这样做吗?我看到有多个非托管样本,但我找不到任何托管样本。
【问题讨论】:
文章不错,但实际上并没有回答问题。 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。
【讨论】:
我不确定我是否真的理解你的问题?!已经有一个托管的 OleDBProvider 了?!
using System.Data.OleDb;
我当然不鼓励编写一个存在且运行良好的提供程序! :)
但在回答您的第一个问题时,您当然可以创建自己的问题。 Data Provider Roadmap 可能是开始概述和示例链接等的好地方。
【讨论】: