Udostępnij za pośrednictwem


Tworzenie konsumenta bez użycia kreatora

W poniższym przykładzie założono, że dodajesz obsługę konsumenta OLE DB z istniejącym projektem ATL.Jeśli chcesz dodać do aplikacji MFC obsługę konsumenta OLE DB, należy uruchomić Kreatora aplikacji MFC, która tworzy niezbędne wsparcie i wywołuje MFC procedury niezbędne do wykonywania aplikacji.

Aby dodać obsługę konsumenta OLE DB bez Kreatora ATL OLE DB konsumenta:

  • 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óry wiąże kolumn do 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.Zadeklarować elementu danych w polu Klasa użytkownika rekordu dla każdego pola określonego w kolumnie mapę; dla każdego z tych elementów członkowskich danych należy również zadeklarować element członkowski danych stanu i długość element członkowski danych.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.Decydować o rodzaju akcesor i zestaw wierszy do używania i 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.Zazwyczaj jest to w kodzie głównym.Na przykład:

    HRESULT hr = CoInitialize(NULL);
    
  • Wywołanie CDataSource::Open lub jeden z jego odmiany.

  • Otworzyć połączenia ze źródłem danych, otwórz sesję i otworzyć i inicjowania zestawu wierszy (i jeśli polecenie, również wykonywanie go):

    hr = ds.Open();
    hr = ss.Open(ds);
    hr = rs.Open();            // (Open also executes the command)
    
  • Opcjonalnie zestaw wierszy zestawu właściwości za pomocą CDBPropSet::AddProperty i przekazać je jako parametr rs.Open.Aby uzyskać przykład tego, jak to zrobić, zobacz GetRowsetProperties w Metody Consumer Wizard-Generated.

  • Teraz służy zestaw wierszy pobierania/operacje na danych.

  • Po zakończeniu aplikacji, zamknij połączenie, sesji i zestaw wierszy:

    rs.Close();
    ss.Close();
    ds.Close();
    

    Jeśli używasz polecenia można wywołać ReleaseCommand po Zamknij.Przykład kodu w CCommand::Close pokazuje sposób wywoływania Zamknij i ReleaseCommand.

  • Wywołanie CoUnInitialize do odinicjowania COM.Zazwyczaj jest to w kodzie głównym.

    CoUninitialize();
    

Zobacz też

Informacje

Tworzenie konsumenta OLE DB