Tworzenie konsumenta bez użycia kreatora
W poniższym przykładzie przyjęto założenie, że dodasz obsługę konsumentów OLE DB do istniejącego projektu ATL. Jeśli chcesz dodać obsługę klienta OLE DB do aplikacji MFC, należy uruchomić Kreatora aplikacji MFC, który tworzy całą niezbędną obsługę i wywołuje procedury MFC niezbędne do wykonania aplikacji.
Aby dodać obsługę konsumentów OLE DB bez korzystania z Kreatora konsumenta OLE DB ATL:
W pliku pch.h dołącz następujące
#include
instrukcje:#include <atlbase.h> #include <atldbcli.h> #include <atldbsch.h> // if you are using schema templates
Programowo użytkownik zazwyczaj wykonuje następującą sekwencję operacji:
Utwórz klasę rekordów użytkownika, która wiąże kolumny ze zmiennymi lokalnymi. W tym przykładzie
CMyTableNameAccessor
jest to klasa rekordów użytkownika (zobacz Rekordy użytkowników). Ta klasa zawiera mapę kolumn i mapę parametrów. Zadeklaruj element członkowski danych w klasie rekordów użytkownika dla każdego pola określonego na mapie kolumn; dla każdego z tych elementów członkowskich danych zadeklaruj również element członkowski danych o stanie i składową danych długości. Aby uzyskać więcej informacji, zobacz Elementy członkowskie danych stanu pola w metodach dostępu generowanych przez kreatora.Uwaga
Jeśli piszesz własnego konsumenta, zmienne danych muszą znajdować się przed zmiennymi stanu i długości.
Utworzenie wystąpienia źródła danych i sesji. Zdecyduj, jakiego typu metody dostępu i zestawu wierszy użyć, a następnie utwórz wystąpienie zestawu wierszy przy użyciu polecenia CCommand lub CTable:
CDataSource ds; CSession ss; class CMyTableName : public CCommand<CAccessor<CMyTableNameAccessor>>
Wywołaj metodę
CoInitialize
inicjowania modelu COM. Jest to wywoływane w kodzie głównym. Na przykład:HRESULT hr = CoInitialize(NULL);
Wywołaj metodę CDataSource::Open lub jedną z jego odmian.
Otwórz połączenie ze źródłem danych, otwórz sesję i otwórz i zainicjuj zestaw wierszy (a jeśli polecenie, uruchom je również):
hr = ds.Open(); hr = ss.Open(ds); hr = rs.Open(); // (Open also executes the command)
Opcjonalnie ustaw właściwości zestawu wierszy przy użyciu polecenia
CDBPropSet::AddProperty
i przekaż je jako parametr dors.Open
. Aby zapoznać się z przykładem tego, jak to zrobić, zobaczGetRowsetProperties
w temacie Metody wygenerowane przez kreatora odbiorców.Teraz możesz użyć zestawu wierszy, aby pobrać/manipulować danymi.
Po zakończeniu działania aplikacji zamknij połączenie, sesję i zestaw wierszy:
rs.Close(); ss.Close(); ds.Close();
Jeśli używasz polecenia, możesz wywołać metodę
ReleaseCommand
poClose
. Przykład kodu w CCommand ::Close pokazuje, jak wywołaćClose
metodę iReleaseCommand
.Wywołanie
CoUnInitialize
metody w celu niezainicjowania modelu COM. Jest to wywoływane w kodzie głównym.CoUninitialize();