Tworzenie konsumenta bez użycia kreatora
W poniższym przykładzie założono, że do istniejącego projektu ATL dodajesz OLE DB konsumenta wsparcia.Jeśli chcesz dodać do aplikacji MFC obsługę konsumenta OLE DB, należy uruchomić Kreatora aplikacji MFC, który tworzy wszystkie wsparcie niezbędne i wywołuje MFC procedury niezbędne do wykonania wniosku.
Aby dodać obsługę konsumenta OLE DB, bez używania ATL OLE DB konsumenta kreatora:
W pliku Stdafx.h, dołącz następujące #include instrukcji:
#include <atlbase.h> #include <atldbcli.h> #include <atldbsch.h> // if you are using schema templates
Programowo konsument zazwyczaj wykonuje następującą sekwencję operacji:
Utwórz klasę rekordu użytkownika, która wiąże kolumny zmiennych lokalnych.W tym przykładzie CMyTableNameAccessor jest klasa rekordu użytkownika (zobacz Rekordów użytkowników).Ta klasa zawiera kolumny mapy i mapy parametru.Ogłosić członka danych w klasie rekordu użytkownika, dla każdego pola określonego w kolumnie mapę; dla każdego z członków tych danych należy również zadeklarować statusu członka danych, członek danych długość.Aby uzyskać więcej informacji, zobacz Pole Stan danych członków w akcesorach Wizard-Generated.
[!UWAGA]
Jeśli piszesz własną konsumenta, zmienne dane muszą znajdować się przed zmienne stanu i długości.
Utwórz wystąpienie źródła danych i sesji.Zdecydować, jakiego rodzaju akcesor zestawu wierszy i następnie utworzyć wystąpienia zestawu wierszy za pomocą CCommand lub CTable:
CDataSource ds; CSession ss; class CMyTableName : public CCommand<CAccessor<CMyTableNameAccessor> >
Wywołanie CoInitialize zainicjować modelu COM.Nazywa się to zazwyczaj w głównych kodu.Na przykład:
HRESULT hr = CoInitialize(NULL);
Wywołanie CDataSource::Open lub jednego z jego zmian.
Otwórz połączenie ze źródłem danych, otwórz sesję, Otwórz i zainicjować zestawu wierszy (i jeśli polecenia, także wykonać go):
hr = ds.Open(); hr = ss.Open(ds); hr = rs.Open(); // (Open also executes the command)
Opcjonalnie zestawu wierszy zestawu właściwości za pomocą CDBPropSet::AddProperty i przekazać je jako parametr do rs.Open.Przykładem, jak to zrobić, zobacz GetRowsetProperties w Metody Consumer Wizard-Generated.
Można teraz zestawu wierszy do pobrania/manipulowania danymi.
Po zakończeniu edytowania aplikacji należy zamknąć połączenie, sesji i wierszy:
rs.Close(); ss.Close(); ds.Close();
Jeśli używasz polecenia można wywoływać ReleaseCommand po Zamknij.Przykład kodu w CCommand::Close pokazuje, jak wywołać Zamknij i ReleaseCommand.
Wywołanie CoUnInitialize do odinicjowania modelu COM.Nazywa się to zazwyczaj w głównych kodu.
CoUninitialize();