Udostępnij za pośrednictwem


Rekord użytkownika

Rekord użytkownika zawiera strukturę kodu i danych, która reprezentuje danych kolumny dla zestawu wierszy.Rekord użytkownika mogą być tworzone w czasie kompilacji lub w czasie wykonywania.Podczas tworzenia dostawcę przy użyciu biblioteki ATL OLE DB Provider kreatora, Kreator tworzy rekord użytkownika domyślnego, który wygląda następująco (przy założeniu, że określona nazwa dostawcy [nazwa krótka] z "MyProvider"):

class CWindowsFile:
   public WIN32_FIND_DATA
{
public:

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

};

Szablony dostawca OLE DB obsługuje wszystkie OLE DB szczegóły dotyczące interakcji z klientem.Uzyskanie danych kolumny potrzebne na odpowiedź, dostawca wywołuje GetColumnInfo funkcja, która musi umieścić w rekordzie użytkownika.Można zastąpić jawnie GetColumnInfo w rekordzie użytkownika, na przykład poprzez uznanie go w pliku .h jak pokazano poniżej:

template <class T>
static ATLCOLUMNINFO* GetColumnInfo(T* pThis, ULONG* pcCols) 

Jest to równoważne:

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

Musi też implementować GetColumnInfo w pliku CPP rekordu użytkownika.

Makra PROVIDER_COLUMN_MAP pomoc w tworzeniu GetColumnInfo funkcji:

  • BEGIN_PROVIDER_COLUMN_MAP definiuje prototyp funkcji i statycznych tablica ATLCOLUMNINFO struktur.

  • PROVIDER_COLUMN_ENTRY definiuje i inicjuje pojedynczy ATLCOLUMNINFO.

  • END_PROVIDER_COLUMN_MAP zamyka tablicy i funkcji.Umieszcza on również liczba elementów tablicy do pcCols parametru.

Po utworzeniu rekordu użytkownika w czasie wykonywania, GetColumnInfo korzysta z pThis parametru, aby uzyskać wskaźnik do wystąpienia polecenia lub zestaw wierszy.Polecenia i zestawów wierszy musi obsługiwać IColumnsInfo interfejs, więc informacje o kolumnie można uzyskać z tego wskaźnika.

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

Aby bardziej szczegółowy przykład sposobu zastąpienia GetColumnInfo w rekordzie użytkownika, zobacz Dynamicznie określenia kolumny zwracane do konsumenta,.

Zobacz też

Koncepcje

Architektura szablonu dostawcy OLE DB