Udostępnij za pośrednictwem


Rekord użytkownika

Uwaga

Kreator dostawcy OLE DB ATL nie jest dostępny w programie Visual Studio 2019 i nowszych wersjach.

Rekord użytkownika zawiera kod i strukturę danych reprezentującą dane kolumn dla zestawu wierszy. Rekord użytkownika można utworzyć w czasie kompilacji lub w czasie wykonywania. Podczas tworzenia dostawcy przy użyciu Kreatora dostawcy OLE DB ATL kreator tworzy domyślny rekord użytkownika, który wygląda następująco (przy założeniu, że określono nazwę dostawcy [krótka nazwa] 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 dostawców OLE DB obsługują wszystkie szczegóły OLE DB dotyczące interakcji z klientem. Aby uzyskać dane kolumny potrzebne do odpowiedzi, dostawca wywołuje GetColumnInfo funkcję, którą należy umieścić w rekordzie użytkownika. Możesz jawnie zastąpić GetColumnInfo rekord użytkownika, na przykład deklarując go w pliku .h, jak pokazano poniżej:

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

To równa się:

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

Następnie zaimplementuj GetColumnInfo plik .cpp rekordu użytkownika.

Makra PROVIDER_COLUMN_MAP ułatwiają tworzenie GetColumnInfo funkcji:

  • BEGIN_PROVIDER_COLUMN_MAP definiuje prototyp funkcji i statyczną tablicę ATLCOLUMNINFO struktur.

  • PROVIDER_COLUMN_ENTRY definiuje i inicjuje pojedynczy ATLCOLUMNINFOelement .

  • END_PROVIDER_COLUMN_MAP zamyka tablicę i funkcję. Umieszcza również liczbę elementów tablicy w parametrze pcCols .

Gdy rekord użytkownika jest tworzony w czasie wykonywania, GetColumnInfo używa parametru pThis do odbierania wskaźnika do zestawu wierszy lub wystąpienia polecenia. Polecenia i zestawy wierszy muszą obsługiwać IColumnsInfo interfejs, więc informacje o kolumnie można pobrać z tego wskaźnika.

CommandClass i RowsetClass to polecenie i zestaw wierszy używający rekordu użytkownika.

Aby uzyskać bardziej szczegółowy przykład zastępowania GetColumnInfo rekordu użytkownika, zobacz Dynamiczne określanie kolumn zwróconych użytkownikowi.

Zobacz też

Architektura szablonu dostawcy OLE DB