使用ATL OLE DB提供程序模板

时间:2013-09-15 21:42:07

标签: c++ oledb atl provider

我正在尝试尝试编写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相关的问题。

0 个答案:

没有答案