Udostępnij za pośrednictwem


Rekordu użytkownika

Rekord użytkownika zawiera strukturę kodu i danych, reprezentujący dane z kolumn dla zestawu wierszy.Rekord użytkownika można tworzyć w czasie kompilacji lub w czasie wykonywania.Podczas tworzenia dostawcy kreatora ATL OLE DB Provider, Kreator tworzy domyślną rekordu użytkownika, 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 dostawcy OLE DB obsłużyć wszystkie szczegóły OLE DB dotyczące interakcji z klientem.Uzyskanie danych kolumny potrzebne odpowiedzi, dostawca wywołuje GetColumnInfo funkcji, które należy 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 pomocy w tworzeniu GetColumnInfo funkcji:

  • BEGIN_PROVIDER_COLUMN_MAP definiuje prototyp funkcji i statycznych tablica ATLCOLUMNINFO struktury.

  • PROVIDER_COLUMN_ENTRY definiuje i inicjuje pojedynczego ATLCOLUMNINFO.

  • END_PROVIDER_COLUMN_MAP zamyka tablicy i funkcji.Umieszcza też licznik elementu tablicy, do pcCols parametru.

Podczas tworzenia rekordu użytkownika w czasie wykonywania, GetColumnInfo używa pThis parametru, aby otrzymać wskaźnik do wystąpienia zestawu wierszy lub polecenia.Polecenia i zestawów wierszy musi obsługiwać IColumnsInfo interfejsu, więc informacje o kolumnie można otrzymać ten wskaźnik.

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

Aby uzyskać bardziej szczegółowe przykład zastąpić GetColumnInfo w rekordzie użytkownika, zobacz Dynamicznie określenia kolumn zwracana do konsumenta.

Zobacz też

Koncepcje

OLE DB Provider szablonu architektury