我正在尝试尝试编写 OLEDB 提供程序。我已经开始使用 ATL OLE DB 提供程序向导。在修复了 COM_INTERFACE_ENTRY2 宏的一个明显问题后,我设法获得了要编译的默认代码,但到目前为止,我使用它并没有取得太大的成功。
例如,我尝试使用 VB.NET 来连接它:
Dim testConn As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=TestProvider.Provider.1")
testConn.Open()
Dim strTest As String = "C:\*.*"
Dim testCmd As New OleDb.OleDbCommand(strTest, testConn)
Dim testRd As OleDb.OleDbDataReader
testRd = testCmd.ExecuteReader()
最后一行产生一个InvalidOperationException
带有附加信息的:OleDbDataAdapter internal error: invalid row set accessor: Ordinal=1 Status=BADBINDINFO
.
尝试在 Access 中使用 VBA 中的 ADO 可以让我正确提取字段名称,但是当我尝试获取任何实际值时,我会收到一条相当通用的“多步 OLE DB 操作产生错误”消息。
我已尝试阅读绑定和访问器,但似乎没有任何与模板代码更改相关的内容。还有什么我可能做错了吗?我尝试创建一个新的列映射,并用硬编码值的不同字段替换所有 FindFirstFile 代码,但仍然遇到相同的错误。
我正在使用 Visual Studio 2013 RC,但我认为这不是与 IDE 相关的问题。