Rekordu użytkownika

Rekord użytkownika zawiera struktury kodu i danych, który reprezentuje dane z kolumn dla zestawu wierszy. Rekordu użytkownika mogą być tworzone w czasie kompilacji lub w czasie wykonywania. Podczas tworzenia dostawcę przy użyciu Kreatora obiektu ATL, Kreator utworzy rekordu użytkownika domyślnego, który wygląda tak:

klasa CWindowsFile:
   WIN32_FIND_DATA publiczne
{
publiczne:

BEGIN_PROVIDER_COLUMN_MAP(CWindowsFile)
   PROVIDER_COLUMN_ENTRY ("FileAttributes", 1, dwFileAttributes)
   PROVIDER_COLUMN_ENTRY ("FileSizeHigh", 2 nFileSizeHigh)
   PROVIDER_COLUMN_ENTRY ("FileSizeLow", 3, nFileSizeLow)
   PROVIDER_COLUMN_ENTRY ("nazwa_pliku", 4, cFileName)
   PROVIDER_COLUMN_ENTRY ("AltFileName", 5, cAlternateFileName)
END_PROVIDER_COLUMN_MAP()

}

Szablony dostawcy bazy danych OLE obsługują wszystkie OLE DB szczegóły dotyczące interakcje z klientem. Uzyskanie danych kolumny potrzebne do odpowiedzi, dostawca wywołuje funkcję GetColumnInfo , która musi umieścić w rekordu użytkownika:

lt szablonu; Klasa T >
statyczne ATLCOLUMNINFO * GetColumnInfo(T* pThis, ULONG* pcCols)
 

PROVIDER_COLUMN_MAP makra pomocy w tworzeniu funkcji GetColumnInfo:

Po utworzeniu rekordu użytkownika w czasie wykonywania GetColumnInfo użyto parametru pThis do otrzymywania wskaźnik instancję zestawu rekordów lub polecenie. Polecenia i zestawów wierszy musi obsługiwać interfejs IColumnsInfo , więc kolumny informacji można uzyskać od tego wskaźnika.

GetColumnInfo rekordu użytkownika, można zastąpić wyraźnie, jak pokazano tutaj:

lt szablonu; Klasa T >
statyczne ATLCOLUMNINFO * GetColumnInfo(T* pThis, ULONG* pcCols)
 

Jest to odpowiednik:

statyczne ATLCOLUMNINFO * GetColumnInfo(CommandClass* pThis, ULONG* pcCols)
statyczne ATLCOLUMNINFO * GetColumnInfo(RowsetClass* pThis, ULONG* pcCols)

CommandClass i RowsetClass są polecenia i wierszy, które używają rekordu użytkownika.

Dodatkowe przykład sposobu zastąpienia GetColumnInfo w rekordu użytkownika zobacz Tworzenie prostych dostawcy otwieraniu.

Wróć do architektury szablonu OLE DB Provider

Index