未使用精靈建立消費者
下列範例假設您要將 OLE DB 消費者支援新增至現有的 ATL 專案。 如果您想要將 OLE DB 消費者支援新增至 MFC 應用程式,您應該執行 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();