下面的示例假定要向现有 ATL 项目添加 OLE DB 使用者支持。 若要向 MFC 应用程序添加 OLE DB 使用者支持,应运行 MFC 应用程序向导,这会创建所有必要的支持,并调用执行应用程序所需的 MFC 例程。
若要在不使用 ATL OLE DB 使用者向导的情况下添加 OLE DB 使用者支持,请执行以下操作:
- 在 pch.h 文件中,追加以下 - #include语句:- #include <atlbase.h> #include <atldbcli.h> #include <atldbsch.h> // if you are using schema templates
使用者通常以编程方式执行以下一系列操作:
- 创建将列绑定到本地变量的用户记录类。 在此示例中, - CMyTableNameAccessor是用户记录类(请参阅用户记录)。 此类包含列映射和参数映射。 在用户记录类中为你在列映射中指定的每个字段声明数据成员;对于每个数据成员,还声明状态数据成员和长度数据成员。 有关详细信息,请参阅向导生成的取值函数中的字段状态数据成员。- 注意 - 如果你编写自己的使用者,数据变量必须位于状态变量和长度变量前面。 
- 实例化数据源和会话。 确定要使用什么类型的取值函数和行集,然后使用 CCommand 或 CTable 实例化行集: - CDataSource ds; CSession ss; class CMyTableName : public CCommand<CAccessor<CMyTableNameAccessor>>
- 调用 - CoInitialize来初始化 COM。 调用是在主代码中进行。 例如:- HRESULT hr = CoInitialize(NULL);
- 调用 CDataSource::Open 或其变体之一。 
- 打开与数据源的连接,打开会话,然后打开并初始化行集(如果是命令的话,还要执行它): - hr = ds.Open(); hr = ss.Open(ds); hr = rs.Open(); // (Open also executes the command)
- (可选)使用 - CDBPropSet::AddProperty设置行集属性,并将它们作为参数传递给- rs.Open。 有关如何完成此操作的示例,请参阅使用者向导生成的方法中的“- GetRowsetProperties”。
- 现在可以使用行集来检索/控制数据了。 
- 完成应用程序后,关闭连接、会话和行集: - rs.Close(); ss.Close(); ds.Close();- 如果使用的是命令,建议在 - Close后面调用- ReleaseCommand。 CCommand::Close 中的代码示例展示了如何调用- Close和- ReleaseCommand。
- 调用 - CoUnInitialize来取消初始化 COM。 调用是在主代码中进行。- CoUninitialize();