Udostępnij za pośrednictwem


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:

  1. 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 do rs.Open. Aby zapoznać się z przykładem tego, jak to zrobić, zobacz GetRowsetProperties 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 po Close. Przykład kodu w CCommand ::Close pokazuje, jak wywołać Close metodę i ReleaseCommand.

  • Wywołanie CoUnInitialize metody w celu niezainicjowania modelu COM. Jest to wywoływane w kodzie głównym.

    CoUninitialize();
    

Zobacz też

Tworzenie konsumenta OLE DB